プログラミング言語 Lua その3
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/10/14(土) 13:13:52前々スレ http://pc5.2ch.net/tech/kako/1034/10341/1034182349.html
前スレ http://pc8.2ch.net/test/read.cgi/tech/1063711237/
本家 http://www.lua.org/
lua-users http://lua-users.org/
LuaForge http://luaforge.net/
Lua 5.1 リファレンスマニュアル(日本語訳)
http://sugarpot.sakura.ne.jp/yuno/html/lua51_manual_ja.html
0154デフォルトの名無しさん
2007/04/11(水) 07:38:08VS2005で、SquirrelをDLL化して
Releaseビルド220Kだよ
0155139
2007/04/11(水) 13:13:13それって『構成の種類』をdllに設定してビルドするってことですか?
たしかにsquirrel.dllが170KBくらいで軽くなっているんですが、
sqstdlib.dllがエラーで作成できない…。このリンクエラーどうしました?
0156139
2007/04/11(水) 15:34:58libのサイズってコンパイルさせるために必要なデータが入ってるから
dllより重くなるみたいですね。知りませんでした。
実行ファイルのサイズに影響する分のサイズは二つのlibでだいたい270KBくらいなんだと思います。
ありがとうございました。
0157デフォルトの名無しさん
2007/04/11(水) 16:46:14Rubyは作者が、オブジェクト指向の言語をオブジェクト指向の言語で書きにくいと言ってる。
>>153
どの辺が?
サイズ大きいのは別に害じゃないと思うけど
0158デフォルトの名無しさん
2007/04/22(日) 00:44:070159デフォルトの名無しさん
2007/04/28(土) 20:45:470160デフォルトの名無しさん
2007/05/08(火) 17:11:310161デフォルトの名無しさん
2007/05/09(水) 20:26:56http://wikiwiki.jp/lua/?Squirrel
Squirrelの参考リンク参考になりました。
サンクス。
0162デフォルトの名無しさん
2007/05/13(日) 11:16:32Squirrelで
sq_open使うと
ハンドルされていない例外 : System.TypeLoadException: アセンブリ 'squirreltest, V
ersion=0.0.0.0, Culture=neutral, PublicKeyToken=null' から型 'SQVM' を読み込めま
せん。
at main()
みたいなメッセージでる。調べたけどわからん
助けて
0163デフォルトの名無しさん
2007/05/13(日) 11:33:09なんでこうなるのかよくわからんけど
0164デフォルトの名無しさん
2007/05/13(日) 11:41:18自己解決したら、解決法をかけとあれほど・・・
0165デフォルトの名無しさん
2007/05/13(日) 11:52:471. MyProject.cpp ファイルに次のコードを含みます。typedef struct _t_Struct *myStruct;
2. 手順 1 で探したコードをの後、次のコードを追加します。 struct _t_Struct
{
};
を書いて
t_Structの部分をSQVMにしたら動いた
プログラム初心者なんで意味がよくわからないし本当に治ってるのかわからないけど
0166デフォルトの名無しさん
2007/05/16(水) 15:52:01今ゲームに組み込んでるのでそこで得た知識をいずれ記事にしてまとめるかも
コードのどこを削るかとか、Windows以外で使うときにメモリ確保部分をどう書き換えるかとか
0167デフォルトの名無しさん
2007/05/16(水) 17:29:10マジで期待したいです。
0168デフォルトの名無しさん
2007/05/16(水) 23:03:00ttp://d.hatena.ne.jp/xtalco/
0169デフォルトの名無しさん
2007/05/18(金) 00:35:540170デフォルトの名無しさん
2007/05/18(金) 20:11:56ざっと目を通しただけなので細かいところはわからないけど、
C++への組み込みに使用するとき、スタックを意識せずによいみたい。
残念なのは、ソースがVC依存ぽいところ。
0171デフォルトの名無しさん
2007/05/23(水) 03:05:54むしろ、レス見てると、gcc依存っぽいが。
0172デフォルトの名無しさん
2007/05/23(水) 17:33:52xtal-language - Google Code
http://code.google.com/p/xtal-language/
こっちを出さないと
0173デフォルトの名無しさん
2007/05/23(水) 20:38:360174デフォルトの名無しさん
2007/05/23(水) 22:20:10おまー、mixiのluaコミュでも同じ質問してるだろ
0175デフォルトの名無しさん
2007/05/23(水) 22:38:270176デフォルトの名無しさん
2007/05/23(水) 23:36:38なんか凄いところで紹介されてるね
■404 Blog Not Found
君は新言語xtalを知っているか?
ttp://blog.livedoor.jp/dankogai/archives/50836939.html
0177デフォルトの名無しさん
2007/05/23(水) 23:59:34ver5.1使ってるんですけど日本語化パッチが5.02までしかないみたいなんで
sjisに対応できないんですよ。まあ出るのを待ちますか。
0178デフォルトの名無しさん
2007/05/24(木) 00:01:39自分で改造するんだ!
0179デフォルトの名無しさん
2007/05/24(木) 07:36:570180デフォルトの名無しさん
2007/05/24(木) 14:31:10これはどう?
Lua@空想具現化プログラミング
http://hammm.dw.land.to/lua/
0181デフォルトの名無しさん
2007/05/26(土) 21:53:290182デフォルトの名無しさん
2007/05/26(土) 22:25:110183デフォルトの名無しさん
2007/05/30(水) 16:12:03C++ネイティブからOpenGL使っているところを、一部分のOpenGL関数だけ
Luaから呼びたいんですけど。
0184デフォルトの名無しさん
2007/05/30(水) 17:36:39WikiLuaだっけ
0185デフォルトの名無しさん
2007/05/30(水) 18:38:340186デフォルトの名無しさん
2007/05/30(水) 19:06:52自分で書いて命令増やしたりしてたな。
HDDと共に吹っ飛んでもう手元にないが。
0187デフォルトの名無しさん
2007/06/02(土) 16:37:36GCCのABIがかわったのは、C・C++関係ないだろ。
0188デフォルトの名無しさん
2007/06/02(土) 16:39:26は、どうした?
0189デフォルトの名無しさん
2007/06/06(水) 20:10:290190デフォルトの名無しさん
2007/06/07(木) 07:23:060191デフォルトの名無しさん
2007/06/07(木) 20:10:15squirrel.dllを作ろうとするのですが、失敗します・・・
うまくできた人いない?
0192デフォルトの名無しさん
2007/06/07(木) 20:21:05「ダイナミック ライブラリ (.dll)」を選べばいいんですよね?
あれ?あ、できました。
何でできなかったんだろ・・・。
ところで、
sqstdlib は、DLL化できないのですが、これってもしかして、付属のライブラリが使えないことを意味するのでしょうか?
0193191
2007/06/07(木) 20:51:45一旦、squirrel プロジェクトで、lib\ に Squirrel.libを吐いておいて、
sqstdlib プロジェクトで、プロパティ→構成プロパティ→リンカ→→入力 で、
..\lib\squirrel.lib をパスに加えたら、コンパイル通りました。
これでいいのかな?
これで上手くいっているのか、わからないのですが、
他言語(Delphi)から、使ってみようと思います。
ああ、ヘッダーかかなきゃ・・・
0194191
2007/06/07(木) 20:57:48sq.exe 348K
sqstdlib.dll 348K
なんかサイズが、マズイ気がします。
もしかして、squirrel.dllの中身全部、sqstdlib.dllにも入っちゃってるんでしょうか?
(..\lib\squirrel.libつっこんだんだから当り前か・・・)
別プロジェクト作って、一つのDLLにまとめた方が手っとり早いのですかね?
0195デフォルトの名無しさん
2007/06/07(木) 22:39:140196デフォルトの名無しさん
2007/06/07(木) 23:43:220198デフォルトの名無しさん
2007/06/07(木) 23:53:13え、あ、もしかして、zlibみたいに、.oでリンクできるかってことか?
できるんかいな・・・
Delphiと、結合となると、BCCもってきていコンパイルか('A`)
どっちにせよだな・・・
0199デフォルトの名無しさん
2007/06/08(金) 07:14:400200デフォルトの名無しさん
2007/06/08(金) 07:50:470201デフォルトの名無しさん
2007/06/08(金) 08:52:20ひとつも教えてやってもいないじゃないかw
0202191
2007/06/08(金) 17:30:58普段、VS.net使わないから、いやに手こずったぜ・・・
作り方は、後でかくぜ
0203191
2007/06/08(金) 17:48:50VS.net 2005 proでコンパイルを確認。
squirrel_2.1.1_stable が解凍されているとして、
・squirrel_dll ディレクトリを作る
・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする
・ファイル→追加→既存のプロジェクト で、 squirrel_dll を追加
・プロジェクト名が、squirrel になっているので、squirrel_dll に変更
・squirrel_dll の関連づけられたファイルを一旦全部削除
・プロジェクト → 新しいフィルタ で、フィルタを作って、
ソリューションエクスプローラーで、フィルタ名を squirrel に変更
・ソリューションエクスプローラーで、フィルタ squirrel を選択して、
右クリック→追加→既存の項目 で、..\squirrel ディレクトリ の .h と .cpp を全部追加
・同様に、プロジェクト → 新しいフィルタ で、フィルタを作って、
ソリューションエクスプローラーで、フィルタ名を sqstdlib に変更
・ソリューションエクスプローラーで、フィルタ sqstdlib を選択して、
右クリック→追加→既存の項目 で、..\sqstdlib ディレクトリ の .h と .cpp を全部追加
・プロジェクト→プロパティで、
・構成プロパティ→全般→構成の種類 を、「ダイナミック ライブラリ (.dll)」に設定
・構成プロパティ→全般→出力ディレクトリを、「..\bin」に設定
・構成プロパティ→リンカ→全般→出力ファイルを、「$(OutDir)\squirrel.dll」に設定
・あとは、ビルド→squirrel_dll のビルドで、
bin\ に、348KBの squirrel.dll ができていたら成功ー
面倒なら、フィルタは作らんでもいいけど・・・
0204191
2007/06/08(金) 17:49:38たぶん、普段 VC使っている人なら見なくてもできる。
0205デフォルトの名無しさん
2007/06/08(金) 17:55:47これ面白そうだね。でもまだバージョンが1.0未満か
0206191
2007/06/08(金) 18:22:03> ・squirrel_dll ディレクトリを作る
> ・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする
・squirrel_dll ディレクトリを作る
・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする
・squirrel\squirrel_dll.dsp に名前を変えておく
・squirrel\squirrel_dll.dsp を VS.netで開く(新しいプロジェクトに変換する)
0207191
2007/06/08(金) 18:22:50> ・squirrel_dll ディレクトリを作る
> ・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする
・squirrel_dll ディレクトリを作る
・squirrel\squirrel.dsp を squirrel_dll ディレクトリにコピーする
・squirrel_dll\squirrel_dll.dsp に名前を変えておく
・squirrel_dll\squirrel_dll.dsp を VS.netで開く(新しいプロジェクトに変換する)
0208デフォルトの名無しさん
2007/06/08(金) 20:26:11環境は、Windowsです。
ためしに、sq.exeを対応させてみようとしているのですが、微妙な状況です。
素(そのままコンパイルした)のsq.exe に、
---- multi_byte.nut ------
// 表が怖い
print("噂のソフト\n")
-----------------------
を食わせてみた場合
・SJISは、エラー
sjis.nut line = (2) column = (10) : error unrecognised escaper char
Error [unrecognised escaper char]
・UTF-8N は問題なく通る?
出力は、UTF8だが、ターミナルの文字コードをPoderosaで、UTF-8にすると問題なく見られる。
・UTF-16 LE-BOM付き は問題なく通る?
出力が、UTF-16になっているがUTF-16のターミナルを持たないので確認できない。
となったのですが、
これは、素で、UNICODE対応していると見てよいのでしょうか?
SQUNICODEしなくてよいのかな?
0209デフォルトの名無しさん
2007/06/08(金) 20:28:54http://muffin.cias.osakafu-u.ac.jp/~matumoto/cgi-bin/xt.cgi?prog/squirrel_lang
> Unicode
>
> デフォルトではSquirrelの文字列はプレーン8ビットASCII文字となる。
> しかし、VMにシンボル'_UNICODE'がdefineされているなら、
> コンパイラとAPIで文字が16ビットとして扱われる。
0210デフォルトの名無しさん
2007/06/08(金) 20:44:06_UNICDOEをプリプロセッサの定義に設定して、コンパイルしたのですが、
今度は、
>>208のファイルで、
・sjis
・UTF-8N
・UTF-16 LE-BOM
でどれも、
Error [?????????????8・?8?8?8?
と出てしまい、実行できません。
困りました・・・。
0211デフォルトの名無しさん
2007/06/08(金) 20:47:25ちなみに、_UNICODEを定義すると
// hello
print("hello")
とだけ書いたファイルでも
Error [?????????????8・?8?8?8?
といわれてしまいます。
0212デフォルトの名無しさん
2007/06/08(金) 21:28:300213デフォルトの名無しさん
2007/06/12(火) 16:39:38バグなのか、sq.exeで、途中でfilenameが変わって、ファイルが読み込めないという、
不可解な挙動をして、読み込みエラーを吐くので、_UNICODE 見合わせる方向です。
ソースをみると、一応、_UNICODEなくても、BOM付きファイルのUTF16 LE, UTF-16 BE、UTF-8が、
ちゃんと考慮されているようなので、(sqstd_loadfile付近)
_UNICODE使わずに、UTF-16でやってみようと思います。
>>212
多言語から利用したいので、たぶん使えないのですよ・・・
参考にするのはできると思いますが・・・
0214デフォルトの名無しさん
2007/06/12(火) 18:36:04残念ながら、_UNICODEなしで、UTF-16は駄目のようです。
_io_file_lexfeed_UCS2_LE あたりを見ればわかるのですが、
wchar_t を char にキャストしていますので、日本語がつぶれてしまいます。
UTF-8では、そのようなことは起きないようですので、
_UNICODEなしの場合は、UTF-8を使いましょう。
という結論です。
0215デフォルトの名無しさん
2007/06/12(火) 18:50:36すげえなこれ。マジかよ
0216デフォルトの名無しさん
2007/06/12(火) 19:08:56sq.exe で、動作確認をしていたのですが、単に、プロジェクト sq が参照している、
プロジェクト squirrel とプロジェクト sqstdlib の_UNICODE が定義されていないだけでした。
VS.netでは、プロパティのプリプロセッサ設定です。
(つまり、_UNICODEの定義された objと、されていないobjを混ぜていた。そりゃ駄目だわー)
VS.netに、慣れてないせいにしておきます!
>>215
_UNICODE を定義(#define)していない場合の話です。
_UNICODE 定義時は、wchar_t → wchar_t になり、ちゃんと読めます。
0217デフォルトの名無しさん
2007/06/12(火) 20:59:10> 多言語から利用したいので、たぶん使えないのですよ・・・
kwsk
0218デフォルトの名無しさん
2007/06/13(水) 02:56:41SqPlusはテンプレートベースの、スタック操作とか減らすためのライブラリというように見えたのですが、
違うのかな?
テンプレートベース=C++べったりなので、そのまま多言語から使うのは難しいという認識です。
いや、よく見ていないのですが・・・
これから見てみます。
0219デフォルトの名無しさん
2007/06/13(水) 11:14:11遅レスですまんけど、
たんにコンソール出力がUNICODEに対応してないからじゃないのかな
エラー出力をフックして、
コード変更してみたらどうかな
0221デフォルトの名無しさん
2007/06/13(水) 17:06:56squirrelの追記。
プロジェクト sq などの、printを使うプロジェクトの場合、文字化けする(コンソールに?????と出力される)ので、
setlocale( LC_ALL, "" );
を最初の方に入れてロケールの設定をしておくこと。
0222デフォルトの名無しさん
2007/06/13(水) 17:22:45SetThreadLocaleとかのAPIを呼び出してるのかな
0223デフォルトの名無しさん
2007/06/15(金) 11:15:20いときってどうやる?
0224デフォルトの名無しさん
2007/06/15(金) 12:11:08すみません。ちょっと忙しいのでなかなか取り掛かれません。
自分はLuaを使ったことはないし、スクリプトをいじるのも今回が初めてですし、
プログラマとしても経験不足なのは否めないのであまり期待されても困るのですが、
squirrelを使い始めたばかりの人が参考に出来るくらいの情報を提供する自信はあるので、
そのうち必ずやります。
0225デフォルトの名無しさん
2007/06/16(土) 01:37:01補足。
APIに、externだけでなくて、 __declspec(dllexport)つけとかないと、
DLLとして外部に関数を解放できない。
俺アフォw
- #define SQUIRREL_API extern
+ #define SQUIRREL_API extern __declspec(dllexport)
0226デフォルトの名無しさん
2007/06/17(日) 15:29:22Cで定義した変数をLuaのグローバル変数にして、
Lua側で値を変更するとC側でも変更されてるようにならないかな?
userdataかlightuserdataあたりを使うんだろうけど、、、
0227デフォルトの名無しさん
2007/06/18(月) 09:38:11無理やりluaの実数書き込んだり読んだりできるようにluaを書き換えるのは
大した手間じゃないと思うぞ
0228デフォルトの名無しさん
2007/06/19(火) 16:55:22何の話?
0229デフォルトの名無しさん
2007/06/20(水) 23:38:230230デフォルトの名無しさん
2007/06/21(木) 00:10:56遺精か。あんまり頻繁にあるようなら病院逝けよ。お大事に。
0231デフォルトの名無しさん
2007/06/21(木) 00:30:350232デフォルトの名無しさん
2007/06/26(火) 19:09:550233デフォルトの名無しさん
2007/06/26(火) 19:15:330234デフォルトの名無しさん
2007/06/26(火) 19:34:060235デフォルトの名無しさん
2007/06/28(木) 21:53:59ぅあ?
0236デフォルトの名無しさん
2007/06/28(木) 21:58:04ルア
0237デフォルトの名無しさん
2007/06/28(木) 21:58:44英語だとルナだから ルアじゃない?
0238デフォルトの名無しさん
2007/06/28(木) 22:06:53誤爆じゃねーじゃん
0239デフォルトの名無しさん
2007/06/28(木) 22:30:300240デフォルトの名無しさん
2007/06/28(木) 22:54:580241デフォルトの名無しさん
2007/06/29(金) 00:08:090242デフォルトの名無しさん
2007/06/29(金) 14:58:300243デフォルトの名無しさん
2007/06/29(金) 18:25:03プログラミング言語ぅあ その4
0244デフォルトの名無しさん
2007/06/29(金) 21:14:150245デフォルトの名無しさん
2007/06/29(金) 21:19:090246デフォルトの名無しさん
2007/06/29(金) 21:28:27あと2〜3年だな
0247デフォルトの名無しさん
2007/06/29(金) 22:27:28計算するって本当ですか?
あとインデックスが0じゃなくて1から始まるらしいんですけど、何故なんでしょう・・・
この点が無ければ、スクリプト言語で今のところ最有力候補なんですが・・・
0248デフォルトの名無しさん
2007/06/29(金) 23:00:05配列とハッシュ表が区別されない同一のデータ構造なのは本当。
でも、ふつうに配列と使っているときには、配列用のパートにつっこまれてハッシュなんか計算しないよ。
つまり効率が気になるようなら、そこは効率わるくならないようになっている
と考えてよい。
なぜ1から始まるかは知らん。
0249デフォルトの名無しさん
2007/06/30(土) 08:13:120250デフォルトの名無しさん
2007/06/30(土) 11:21:38その辺を改良したのがsquirrelなんじゃね?
squirrelもなんかよみにくね?
0251デフォルトの名無しさん
2007/06/30(土) 16:17:40?
0252デフォルトの名無しさん
2007/06/30(土) 19:16:39じゃあすくいっれるの読み方も>>235に考えてもらおうぜ
0253デフォルトの名無しさん
2007/06/30(土) 22:07:23どうもありがとうございます。配列の件よく分かりました。
あとSquirrelってのは知りませんでした・・・ちゃんとスレ読んでなくてすみません
Squirrel、いいですね、検討してみます
■ このスレッドは過去ログ倉庫に格納されています