トップページtech
1001コメント297KB

プログラミング言語 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
0151デフォルトの名無しさん2007/04/10(火) 22:48:23
>>150
昔からソースは公開されていたし、nm すればソース見ないでも C++ だって
分かる人には分かっていたから大丈夫だよ。
0152デフォルトの名無しさん2007/04/10(火) 22:52:18
>>151
あー、そうなんだ。
0153デフォルトの名無しさん2007/04/11(水) 06:46:14
Squirrelって糞だね
0154デフォルトの名無しさん2007/04/11(水) 07:38:08
>>148
VS2005で、SquirrelをDLL化して
Releaseビルド220Kだよ
01551392007/04/11(水) 13:13:13
>>154
それって『構成の種類』をdllに設定してビルドするってことですか?
たしかにsquirrel.dllが170KBくらいで軽くなっているんですが、
sqstdlib.dllがエラーで作成できない…。このリンクエラーどうしました?
01561392007/04/11(水) 15:34:58
>>154
libのサイズってコンパイルさせるために必要なデータが入ってるから
dllより重くなるみたいですね。知りませんでした。
実行ファイルのサイズに影響する分のサイズは二つのlibでだいたい270KBくらいなんだと思います。
ありがとうございました。
0157デフォルトの名無しさん2007/04/11(水) 16:46:14
>>147
Rubyは作者が、オブジェクト指向の言語をオブジェクト指向の言語で書きにくいと言ってる。

>>153
どの辺が?
サイズ大きいのは別に害じゃないと思うけど
0158デフォルトの名無しさん2007/04/22(日) 00:44:07
Xtal 復活記念あげ
0159デフォルトの名無しさん2007/04/28(土) 20:45:47
何かネタないの?
0160デフォルトの名無しさん2007/05/08(火) 17:11:31
保守
0161デフォルトの名無しさん2007/05/09(水) 20:26:56
Squirrel - Lua/組み込み系言語 Wiki*
http://wikiwiki.jp/lua/?Squirrel

Squirrelの参考リンク参考になりました。
サンクス。
0162デフォルトの名無しさん2007/05/13(日) 11:16:32
初歩的なことかもしれないけど
Squirrelで
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
>>163
自己解決したら、解決法をかけとあれほど・・・
0165デフォルトの名無しさん2007/05/13(日) 11:52:47
ttp://support.microsoft.com/kb/871182/jaにのってる

1. MyProject.cpp ファイルに次のコードを含みます。typedef struct _t_Struct *myStruct;

2. 手順 1 で探したコードをの後、次のコードを追加します。 struct _t_Struct
{
};

を書いて
t_Structの部分をSQVMにしたら動いた
プログラム初心者なんで意味がよくわからないし本当に治ってるのかわからないけど
0166デフォルトの名無しさん2007/05/16(水) 15:52:01
squirrel使う人増えれば嬉しいな
今ゲームに組み込んでるのでそこで得た知識をいずれ記事にしてまとめるかも
コードのどこを削るかとか、Windows以外で使うときにメモリ確保部分をどう書き換えるかとか
0167デフォルトの名無しさん2007/05/16(水) 17:29:10
>>166
マジで期待したいです。
0168デフォルトの名無しさん2007/05/16(水) 23:03:00
新言語 Xtalを作る日記
ttp://d.hatena.ne.jp/xtalco/
0169デフォルトの名無しさん2007/05/18(金) 00:35:54
リンク張り逃げだけじゃなく、なにかしらの解説してくれや。
0170デフォルトの名無しさん2007/05/18(金) 20:11:56
>>169
ざっと目を通しただけなので細かいところはわからないけど、
C++への組み込みに使用するとき、スタックを意識せずによいみたい。

残念なのは、ソースがVC依存ぽいところ。
0171デフォルトの名無しさん2007/05/23(水) 03:05:54
>>170
むしろ、レス見てると、gcc依存っぽいが。
0172デフォルトの名無しさん2007/05/23(水) 17:33:52
>>168
xtal-language - Google Code
http://code.google.com/p/xtal-language/

こっちを出さないと
0173デフォルトの名無しさん2007/05/23(水) 20:38:36
Cみたいに文字列の先頭から順にアクセスするとかできないんですか?
0174デフォルトの名無しさん2007/05/23(水) 22:20:10
>>173
おまー、mixiのluaコミュでも同じ質問してるだろ
0175デフォルトの名無しさん2007/05/23(水) 22:38:27
別に効率が悪いだけでstring.subでできるでしょ。
0176デフォルトの名無しさん2007/05/23(水) 23:36:38
>>168,172
なんか凄いところで紹介されてるね

■404 Blog Not Found
君は新言語xtalを知っているか?
ttp://blog.livedoor.jp/dankogai/archives/50836939.html
0177デフォルトの名無しさん2007/05/23(水) 23:59:34
>175
ver5.1使ってるんですけど日本語化パッチが5.02までしかないみたいなんで
sjisに対応できないんですよ。まあ出るのを待ちますか。
0178デフォルトの名無しさん2007/05/24(木) 00:01:39
>>177
自分で改造するんだ!
0179デフォルトの名無しさん2007/05/24(木) 07:36:57
UTF8でいいじゃない
0180デフォルトの名無しさん2007/05/24(木) 14:31:10
>>177
これはどう?

Lua@空想具現化プログラミング
http://hammm.dw.land.to/lua/
0181デフォルトの名無しさん2007/05/26(土) 21:53:29
誰かlua_qt使ってる人いますか?
0182デフォルトの名無しさん2007/05/26(土) 22:25:11
はい
0183デフォルトの名無しさん2007/05/30(水) 16:12:03
質問です。LuaからOpenGLって使えます?
C++ネイティブからOpenGL使っているところを、一部分のOpenGL関数だけ
Luaから呼びたいんですけど。
0184デフォルトの名無しさん2007/05/30(水) 17:36:39
そういうやつが、どっかにあった気がす
WikiLuaだっけ
0185デフォルトの名無しさん2007/05/30(水) 18:38:34
というか逆に使えないと思う理由は何?
0186デフォルトの名無しさん2007/05/30(水) 19:06:52
俺が昔使ってたやつはまだ大まかな関数しかなかったから、
自分で書いて命令増やしたりしてたな。
HDDと共に吹っ飛んでもう手元にないが。
0187デフォルトの名無しさん2007/06/02(土) 16:37:36
>>147
GCCのABIがかわったのは、C・C++関係ないだろ。
0188デフォルトの名無しさん2007/06/02(土) 16:39:26
>>166

は、どうした?
0189デフォルトの名無しさん2007/06/06(水) 20:10:29
あげる
0190デフォルトの名無しさん2007/06/07(木) 07:23:06
WikiXtalとかないの
0191デフォルトの名無しさん2007/06/07(木) 20:10:15
SquirrelをDLL化して使っている人いませんか?

squirrel.dllを作ろうとするのですが、失敗します・・・
うまくできた人いない?
0192デフォルトの名無しさん2007/06/07(木) 20:21:05
VisualStudio 2005 の、squirrelプロパティで、構成の定義で、
「ダイナミック ライブラリ (.dll)」を選べばいいんですよね?

あれ?あ、できました。
何でできなかったんだろ・・・。

ところで、
sqstdlib は、DLL化できないのですが、これってもしかして、付属のライブラリが使えないことを意味するのでしょうか?
01931912007/06/07(木) 20:51:45
sqstdlib.dll ビルドできました。

一旦、squirrel プロジェクトで、lib\ に Squirrel.libを吐いておいて、
sqstdlib プロジェクトで、プロパティ→構成プロパティ→リンカ→→入力 で、
..\lib\squirrel.lib をパスに加えたら、コンパイル通りました。

これでいいのかな?

これで上手くいっているのか、わからないのですが、
他言語(Delphi)から、使ってみようと思います。

ああ、ヘッダーかかなきゃ・・・
01941912007/06/07(木) 20:57:48
squirrel.dll 200K
sq.exe    348K
sqstdlib.dll 348K

なんかサイズが、マズイ気がします。
もしかして、squirrel.dllの中身全部、sqstdlib.dllにも入っちゃってるんでしょうか?
(..\lib\squirrel.libつっこんだんだから当り前か・・・)

別プロジェクト作って、一つのDLLにまとめた方が手っとり早いのですかね?
0195デフォルトの名無しさん2007/06/07(木) 22:39:14
半年ROMってろ
0196デフォルトの名無しさん2007/06/07(木) 23:43:22
スタティックリンクでいいじゃん
0197デフォルトの名無しさん2007/06/07(木) 23:51:10
>>195
ムカッ!!

>>196
C++じゃないから、できないもん・・・
0198デフォルトの名無しさん2007/06/07(木) 23:53:13
>>196
え、あ、もしかして、zlibみたいに、.oでリンクできるかってことか?
できるんかいな・・・

Delphiと、結合となると、BCCもってきていコンパイルか('A`)
どっちにせよだな・・・
0199デフォルトの名無しさん2007/06/08(金) 07:14:40
自分で調べて学習する気がないなら、いくら教えても無駄だ
0200デフォルトの名無しさん2007/06/08(金) 07:50:47
191はがんばってるとおもうけど
0201デフォルトの名無しさん2007/06/08(金) 08:52:20
>>199
ひとつも教えてやってもいないじゃないかw
02021912007/06/08(金) 17:30:58
squirrel と sqstdlib 合わせて、まとめた squirrel.dll 作れました。
普段、VS.net使わないから、いやに手こずったぜ・・・

作り方は、後でかくぜ
02031912007/06/08(金) 17:48:50
以下、まとめた squirrel.dll の作り方。
VS.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 ができていたら成功ー
 
面倒なら、フィルタは作らんでもいいけど・・・
02041912007/06/08(金) 17:49:38
ようは、squirrel と sqstdlib のファイルまとめて、DLL出力にしただけです。
たぶん、普段 VC使っている人なら見なくてもできる。
0205デフォルトの名無しさん2007/06/08(金) 17:55:47
>>172
これ面白そうだね。でもまだバージョンが1.0未満か
02061912007/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で開く(新しいプロジェクトに変換する)
02071912007/06/08(金) 18:22:50
間違えた orz

> ・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
squirrel の 日本語対応できている人はいませんか?
環境は、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:54
Squirrel 2.1 リファレンスマニュアル
http://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
>>209
_UNICDOEをプリプロセッサの定義に設定して、コンパイルしたのですが、
今度は、

>>208のファイルで、
・sjis
・UTF-8N
・UTF-16 LE-BOM
でどれも、
 Error [?????????????8・?8?8?8?

と出てしまい、実行できません。

困りました・・・。
0211デフォルトの名無しさん2007/06/08(金) 20:47:25
>>210
ちなみに、_UNICODEを定義すると

// hello
print("hello")

とだけ書いたファイルでも
 Error [?????????????8・?8?8?8?
といわれてしまいます。
0212デフォルトの名無しさん2007/06/08(金) 21:28:30
SqPlusつかったほうがはやいかもね。
0213デフォルトの名無しさん2007/06/12(火) 16:39:38
Squirrel の_UNICODE で、デバッガでおいかけていたのですが、
バグなのか、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
>>213
残念ながら、_UNICODEなしで、UTF-16は駄目のようです。
_io_file_lexfeed_UCS2_LE あたりを見ればわかるのですが、
wchar_t を char にキャストしていますので、日本語がつぶれてしまいます。

UTF-8では、そのようなことは起きないようですので、
_UNICODEなしの場合は、UTF-8を使いましょう。

という結論です。

0215デフォルトの名無しさん2007/06/12(火) 18:50:36
>wchar_t を char にキャスト
すげえなこれ。マジかよ
0216デフォルトの名無しさん2007/06/12(火) 19:08:56
>>210-211の _UNICODE の問題ですが、解決できました。

sq.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
>>212
> 多言語から利用したいので、たぶん使えないのですよ・・・

kwsk
0218デフォルトの名無しさん2007/06/13(水) 02:56:41
>>217
SqPlusはテンプレートベースの、スタック操作とか減らすためのライブラリというように見えたのですが、
違うのかな?
テンプレートベース=C++べったりなので、そのまま多言語から使うのは難しいという認識です。

いや、よく見ていないのですが・・・
これから見てみます。
0219デフォルトの名無しさん2007/06/13(水) 11:14:11
>>210
遅レスですまんけど、
たんにコンソール出力がUNICODEに対応してないからじゃないのかな
エラー出力をフックして、
コード変更してみたらどうかな
0220デフォルトの名無しさん2007/06/13(水) 17:05:09
>>219
>>216
0221デフォルトの名無しさん2007/06/13(水) 17:06:56
>>216
squirrelの追記。

プロジェクト sq などの、printを使うプロジェクトの場合、文字化けする(コンソールに?????と出力される)ので、
setlocale( LC_ALL, "" );
を最初の方に入れてロケールの設定をしておくこと。

0222デフォルトの名無しさん2007/06/13(水) 17:22:45
setlocaleって内部で何やってんのかね
SetThreadLocaleとかのAPIを呼び出してるのかな
0223デフォルトの名無しさん2007/06/15(金) 11:15:20
luabind使ってる人に質問。引数にunicode文字列を持つC++の関数をLuaから呼び出した
いときってどうやる?
0224デフォルトの名無しさん2007/06/15(金) 12:11:08
>>188
すみません。ちょっと忙しいのでなかなか取り掛かれません。

自分はLuaを使ったことはないし、スクリプトをいじるのも今回が初めてですし、
プログラマとしても経験不足なのは否めないのであまり期待されても困るのですが、
squirrelを使い始めたばかりの人が参考に出来るくらいの情報を提供する自信はあるので、
そのうち必ずやります。
0225デフォルトの名無しさん2007/06/16(土) 01:37:01
>>203
補足。
APIに、externだけでなくて、 __declspec(dllexport)つけとかないと、
DLLとして外部に関数を解放できない。
俺アフォw

- #define SQUIRREL_API extern
+ #define SQUIRREL_API extern __declspec(dllexport)
0226デフォルトの名無しさん2007/06/17(日) 15:29:22
Luaの質問。
Cで定義した変数をLuaのグローバル変数にして、
Lua側で値を変更するとC側でも変更されてるようにならないかな?
userdataかlightuserdataあたりを使うんだろうけど、、、
0227デフォルトの名無しさん2007/06/18(月) 09:38:11
lightuserdataをdoubleへのポインタだと決めてかかって
無理やりluaの実数書き込んだり読んだりできるようにluaを書き換えるのは
大した手間じゃないと思うぞ
0228デフォルトの名無しさん2007/06/19(火) 16:55:22
>>227
何の話?
0229デフォルトの名無しさん2007/06/20(水) 23:38:23
なんか股間がザーメン臭いんだけど
0230デフォルトの名無しさん2007/06/21(木) 00:10:56
>>229
遺精か。あんまり頻繁にあるようなら病院逝けよ。お大事に。
0231デフォルトの名無しさん2007/06/21(木) 00:30:35
真性マゾルートだと一切触れずにいける様になるらしい
0232デフォルトの名無しさん2007/06/26(火) 19:09:55
月と栗鼠だったのかorz
0233デフォルトの名無しさん2007/06/26(火) 19:15:33
誤爆
0234デフォルトの名無しさん2007/06/26(火) 19:34:06
Lua、LL魂で紹介されるらしいね
0235デフォルトの名無しさん2007/06/28(木) 21:53:59
Luaって何て読むんですか?

ぅあ?
0236デフォルトの名無しさん2007/06/28(木) 21:58:04
>>235
ルア
0237デフォルトの名無しさん2007/06/28(木) 21:58:44
ポルトガル語で月って意味らしいし
英語だとルナだから ルアじゃない?
0238デフォルトの名無しさん2007/06/28(木) 22:06:53
>>232
誤爆じゃねーじゃん
0239デフォルトの名無しさん2007/06/28(木) 22:30:30
「ぅあ」ワラタ
0240デフォルトの名無しさん2007/06/28(木) 22:54:58
すいませんそのまま打ったらぅあなのでなんてよむのか分からなくて
0241デフォルトの名無しさん2007/06/29(金) 00:08:09
「ぅあ」は良いなw
0242デフォルトの名無しさん2007/06/29(金) 14:58:30
萌えるな
0243デフォルトの名無しさん2007/06/29(金) 18:25:03

プログラミング言語ぅあ その4

0244デフォルトの名無しさん2007/06/29(金) 21:14:15
Luaの呼び方は「ぅあ」であることが決定された瞬間だな。
0245デフォルトの名無しさん2007/06/29(金) 21:19:09
瞬間はいいが、次スレなんてどんだけ先だよw
0246デフォルトの名無しさん2007/06/29(金) 21:28:27
>>245
あと2〜3年だな
0247デフォルトの名無しさん2007/06/29(金) 22:27:28
ぅあって、単なる配列も整数のインデックスなのに辞書みたいに毎回ハッシュを
計算するって本当ですか?
あとインデックスが0じゃなくて1から始まるらしいんですけど、何故なんでしょう・・・
この点が無ければ、スクリプト言語で今のところ最有力候補なんですが・・・
0248デフォルトの名無しさん2007/06/29(金) 23:00:05
>247
配列とハッシュ表が区別されない同一のデータ構造なのは本当。
でも、ふつうに配列と使っているときには、配列用のパートにつっこまれてハッシュなんか計算しないよ。
つまり効率が気になるようなら、そこは効率わるくならないようになっている
と考えてよい。

なぜ1から始まるかは知らん。
0249デフォルトの名無しさん2007/06/30(土) 08:13:12
1から始まるぐらいで嫌ならぅぁあ向いてないよ
0250デフォルトの名無しさん2007/06/30(土) 11:21:38
>>247
その辺を改良したのがsquirrelなんじゃね?
squirrelもなんかよみにくね?
■ このスレッドは過去ログ倉庫に格納されています