スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

lua導入しようとした・・・

お久しぶりです。
秋になると毎年「秋刀魚うますぎる!」と感動するtocodaです。

すごく個人的な開発の話
今までDXライブラリ+boostで頑張ってたのですが、
今回Luaを導入してみることに。
ふふふ、これで開発速度もアップだ

ということで、Lua5.2をインストール!
バインダはとりあえずtolua++で決定!

tolua++はどうも自分でビルドしないといけないようだ。
slnファイルが付属してあったので、軽く設定してそのままビルド

・・・ビルド中

VC++コンパイルエラー
  「LUA_ENVIRONINDEX がないよ」
  「lua_getfenv/lua_setfenv がないよ」

!?(゚Д゚;)

いろいろ調べた結果、Luaのバージョンが5.1から5.2になったとき
消えているようす・・・
tolua++は最新バージョンにまだ対応してないのか・・・
ということでLua5.1.4を導入、無事ビルドできました。
ここまでで半日orz

気を取り直して、早速クラスをバインドしてみることに

//main.hpp
class CharaBase{
    lua_State *L;
    CharaBase(){L = luaL_newstate();}
    CharaBase(){lua_close(L);}
};

class Player :CharaBase{
    Player(){};
    void lua_test(); //luaからreturnNumberの実行
    int returnNumber(int num); //数値を返すだけの関数
};

void Player::lua_test(){
    luaL_openlibs(L);
    tolua_test_open(L);
    luaL_dofile(L, "hoge.lua")

    lua_getglobal(L, "hoge");
    lua_pcall(L, 0, 1, 0);
    printStack(L);  //スタック表示
}

//test.pkg
$#include "..\main.hpp"

class Player :public CharaBase{
    int returnNumber(int num);
};

//hoge.lua
function test()
    local play = Player()
    local num = play:returnNumber(10)
    return num
end

//main.cpp
int _tmain(int argc, _TCHAR* argv[])
{
    CharaBase *chara;

    chara = new Player();
    chara->lua_test();

    delete chara;
    //↑初回例外が で発生しました。

    return 0;
}

こんな感じで実装(main,cppは適当、動くのか?w)
includeとか面倒なところは抜いてます。

結果
lua_test()を実行すると↓が出る
hoge.lua:2: Attempt to call a non-callable object.

Playerのコンストラクタもバインドしたらうまく動いた。
どうもインスタンス生成時、どのクラスを生成するか迷子になった感じ・・・?
コンストラクタさん大事っすなあ


delete charaすると初回例外が で発生
???(゚Д゚;)

丁寧に確認するとPlayerのデストラクタが2回呼ばれている様子。
delete時に1回、lua側のhoge関数ないで生じたPlayerが破棄
されるときにもう1回。
バインドしてないのに勝手に呼んでんじゃねーよヽ(`Д´)ノ
というわけでステートの生成、削除場所を変えたら直った。

ここまで来るのにほぼ1日・・・
開発速度上昇が目的なのに、この調子では本末転倒である・・・

そんな秋の夜長(´・ω・`)
スポンサーサイト

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

まとめ【lua導入しようとした】

お久しぶりです。秋になると毎年「秋刀魚うますぎる!」と感動するtocodaです。すごく個人的な開発の話今

まとめ【lua導入しようとした】

お久しぶりです。秋になると毎年「秋刀魚うますぎる!」と感動するtocodaです。すごく個人的な開発の話今

コメントの投稿

非公開コメント

承認待ちコメント

このコメントは管理者の承認待ちです
制作物
◇ PANEL GUNNER ◇
特設ページ

◇ まりさパーティ ◇
特設ページ
最新ver1.01a
DL販売

◇ 魔理沙とアリスと不思議の森 ◇
最新ver1.01
体験版
DL販売

+インきゅベーダー公開中+
◆ダウンロード pass[niko]

◇ ハコはこび ◇
修正パッチver1.01

修正パッチなど
◆春夏冬中アップローダ
カウンター
構成員

イワシ

Author:イワシ
われらがボスにしてプログラム担当であるお方
鰯と呼ぶにはいやはや偉大すぎる
イワシtwitter


ボスの下僕1号:tocoda
友人です ここの管理人してます
ドット絵とかもやってます
こっそりブログ始めました
-> 晴れ時々曇天


ボスの下僕2号:wreath(21)
下僕です。 ドクぺリアンです。
お絵かきとかしてます
http://pixiv.me/wreath-0419

+連絡先+
damenushi@gmail.com
私への罵倒から人生相談まで
お気軽にどうぞ

ボスの御言葉
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。