プログラミング言語 Lua その3
at TECH
[前50を表示]
100:デフォルトの名無しさん
07/01/10 20:07:13
The Pawn language
URLリンク(www.compuphase.com)
だれも使ってなさそうな、組み込み言語
101:デフォルトの名無しさん
07/01/11 22:24:14
ゲーム用のスクリプトを探していて、最近Luaを触り始めた者です。
質問なんですが、C++側でlua_Stateをいくつか作ったとき、そのlua_State間で
C++の関数を通じてテーブルの参照渡しをすることはできますか?
どうも値渡しならスタックを再帰でゴリゴリやってできそうな感じですが…。
102:デフォルトの名無しさん
07/01/12 18:30:38
>>101
lua_xmove かレジストリで良いのかな?
103:デフォルトの名無しさん
07/01/12 22:49:52
>>102
lua_xmoveもレジストリも同じglobal stateのスレッド同士じゃないとだめ。
104:101
07/01/13 17:04:49
ご回答どうもです。
もう少し方法を考えてみようと思います。
ありがとうございました。
105:デフォルトの名無しさん
07/01/24 14:39:15
ROのほむのAIがLuaで記述できるので触っただけです。
別にLuaが好きなわけじゃないんだからね!
106:デフォルトの名無しさん
07/01/26 13:07:45
帰値がdoubleなのはヘッダいじるとして
cdeclなのが気に食わないのはどうしたらいいものか...
107:デフォルトの名無しさん
07/02/08 05:10:19
部分文字列ってどうやって取得するの?今は
string.char(string.byte(str, x, y))
としてるんだけど、これであってるのかなあ。
Lua 2日目の初心者です。
108:デフォルトの名無しさん
07/02/09 06:24:11
なぜstring.subを使わない
109:デフォルトの名無しさん
07/02/09 16:26:00
最近ゲーム内スクリプトに使われることが多いのかな?
110:デフォルトの名無しさん
07/02/09 17:56:11
>109
昔からいっぱい使われてるじゃないか。
111:デフォルトの名無しさん
07/02/09 17:56:42
つっても2年くらいだけどさ
112:デフォルトの名無しさん
07/02/10 04:55:56
>>108
string.subはstring.gsubとおなじで文字列置換だと思ってた。
正直すまんかった。
113:デフォルトの名無しさん
07/02/10 13:23:01
homeworldはこれ使ってるね
114:デフォルトの名無しさん
07/02/10 21:12:44
>>113
FarCryもつかってたな
115:デフォルトの名無しさん
07/02/11 06:31:15
Homeworldで検索したら凄いなこれ・・・
日本人よ、アニメ絵ゲームで萌えてる場合じゃないぞ!
116:デフォルトの名無しさん
07/02/11 14:37:36
EVE onlineもすごいぞ
今検索したら日本語版も出そうだな。
URLリンク(www.4gamer.net)
stackless pythonをサーバー側・クライアント側ともに使ってるらしい。
117:デフォルトの名無しさん
07/02/16 22:15:17
NullLogic Embedded Scripting Language
URLリンク(sourceforge.net)
118:デフォルトの名無しさん
07/02/17 00:54:05
getfenvってlocal変数は取得できないのって不便だな。
function f1(e)
setfenv(1,e) ;print(a)
end
function f2(f)
local a=123 ;f(getfenv(1))
end
f2(f1)
で123が表示されてほしいんだけど。
debug.getlocalとか使えばなんとかなるんだろうけど。
getlocalとgetupvalueだけ何でdebug扱いなんだろう。
速度?
119:デフォルトの名無しさん
07/02/17 12:23:25
あげとこう
120:118
07/02/21 21:35:09
ぅぅ、誰もいないのか? or どうでもいい話題?
これが出来ないとf1への引数指定をするしかないよね。
f2のローカル変数が増えて且つf1でそれを使う場合
f1の引数宣言をどんどん追加する羽目になるんだよなー。
Cのマクロ展開的に気楽に処理をまとめようとする時
>>118見たいに出来ると便利なんだけど。
-------
話変わるけど、luabind使って
a=luabind_class_a() --luabindで定義したクラス生成
b=luabind_class_b() --luabindで定義したクラス生成
a.p=b ; b.p=a
a=nil ; b=nil
collectgarbage("collect")
ってやっても回収されないような気がする。
(pはluabindでdef_readwrite指定してない)
循環さえしてなければ回収されるっぽい。
そもそもdef_readwrite指定してpに代入すること
自体がまずいのかな?
luabind使ってる人、意見ヨロ。
121:118
07/02/21 21:38:11
修正
そもそもdef_readwrite指定してpに代入すること
=> そもそもdef_readwrite指定してないpに代入すること
122:118
07/02/21 21:43:47
更に追記
118は最初f1をf2のローカル関数にしてたけど他でも参照しようとして
外部に出した時の話です。
123:デフォルトの名無しさん
07/02/21 22:08:28
luaさわったことないが、luaでは環境=テーブルなんだし
print(e.a)じゃだめなの?もしくはgetfenv(f2)ではどうなる?
getfenv(1)というのがわからんな。ソース読んだ方が早い
124:118
07/02/21 22:13:40
>>123
print(e.a)でも駄目。
getfenv(f2)もgetfenv(1)もf2内では
同じ意味(のはず)です。
125:118
07/02/21 22:20:39
function f1(e)
setfenv(1,e) ;print(a)
end
function f2(f)
setfenv(1,setmetatable({},{__index=_G}))
a=123 ;f(getfenv(1))
end
f2(f1)
これなら動くんだけどねぇ。
126:デフォルトの名無しさん
07/02/21 23:20:32
>>118
すまん。見てたが良くわからないから
偉い人が降臨するのを待った方がいいと思った。
でもローカル変数はenvironmentが持ってるわけじゃないし
(Function Prototypeが持ってるぽい)
他の関数はスコープの外だから無理だと思うよ。
table:functionの形式にしてselfに持たせるのはどう?
127:118
07/02/22 00:27:58
>>126
いえいえ半分愚痴なんで。
たとえば>>118を以下の様に書き換えると
a=456
function f1(e)
setfenv(1,e) ;print(a) -- 123が表示
end
function f2(f)
--ここからシンタックスシュガー
local org_env=getfenv(1)
local local_env={}
setfenv(1,setmetatable(local_env,{__index=org_env}))
--ここまでシンタックスシュガー
-- aはローカル
a=124
f(local_env)
-- print($a) グローバルなaを表示 =>
print(org_env["a"]) -- 456が表示
end
f2(f1)
print(a) -- 456が表示
関数先頭でローカル環境設定して
むしろlocalが指定されていないときをlocal変数
と解釈し、Rubyみたく$a見たいに記述された時を
グローバル変数と解釈するほうが安全なようなきがする。
関数内でlocal宣言し忘れてうっかりグローバル汚す
心配もないし。
128:118
07/02/22 02:37:14
なんか一人で書き込んでるな (orz
luabindのほうが大問題に思えてきた
class 'abc'
function abc:__init(name) self.name=name ; print("initialize:"..self.name) end
function abc:__finalize() print("finalize:"..self.name) end
a=abc("1")
b=abc("2")
a.p=b;b.p=a --循環
a=nil;b=nil
collectgarbage("collect")
これも__finalizeが呼ばれない模様
上記コードのaもbもuserdataで多分GCがuserdata内部で
持ってる参照を追ってないためリークしてるのではと
予想してみたけど、どうでしょ。
129:デフォルトの名無しさん
07/02/22 12:27:46
luabindはboostまわりで環境(バージョン)依存するし、tolua++使ってるわ。
>>118で何を実現したかったのか見えなかったんだけど、
setfenvとかはあくまでグローバルテーブルが取れるだけだし、
localとupvalueが取れないのは仕様上しょうがない・・・。
debugライブラリ使ってもいいけど、安全上の問題が・・・とかマニュアルに書いてある。
んで、今luaのソースちょっと見てみたら、
ローカル変数は数値インデックスで管理されてて、テーブルになってない。
バイトコード上ではほぼ名前は省かれてて、「このインデックスのローカルにこのインデックスのローカルを代入」みたいな
処理になってると思われる。
グローバル変数をlocalに代入してから処理したほうが高速、といわれるのはこういう理由なのね。
グローバル汚す可能性についてはグローバルのメタテーブルの__newindexをいじくって
制限をつければいいと思う。
130:118
07/02/22 19:38:37
>>129
tolua++ってコードジェネレーター系ですよね。
tolua++て>>128みたいなことって出来ます?例えば
a=ABC:new()
b=ABC:new()
a.p=b;b.p=a --aとbで循環参照させる。
a=nil;b=nil
collectgarbage("collect")
出来るとしたら、これでC++側のABCの実体のデストラクタ
って呼ばれます?
>グローバル汚す可能性についてはグローバルのメタテーブルの__newindexをいじくって
誰かがそんなことやってましたね。
131:デフォルトの名無しさん
07/02/23 03:51:29
>>130
newしたものを普通のテーブルと同じように扱ってるところに問題がない?
userdataの可能性が高いし、そのままメンバー追加してどうなるかはluabindの実装によるかも。
tolua++では、new()で生成すると手動でdeleteが必要。
new_local()または クラス名() で生成すればガベコレに任せる。
local a=TestClass()
local b=TestClass()
local ax = { p = a }
local bx = { p = b }
a=nil;b=nil
ax=nil;bx=nil
collectgarbage(0)
これならちゃんと回収されてる。(Lua5.0の場合)
132:118
07/02/24 00:04:45
>>130
てゆうか、それ循環してないし。
例え循環させても、テーブルは循環してても当然回収されるので
>>130みたくラッピングすればluabindでも当然回収される。
>>userdataの可能性が高いし、そのままメンバー追加してどうなるかはluabindの実装によるかも。
luabind的にはuserdataだけど一応メタテーブル設定して大丈夫になっています。
>>128にも書いたけど、おそらくuserdataからそれに関連づけされた
luaオブジェクトへの参照をGCが追跡できて無いのでリークしてると思う。
5.0ではuserdataに環境は設定できないけど5.1では出来るようになって
いる。5.1でそうした理由は多分”userdata->その環境table”のパス
をGCでおえるようにして循環参照を検出して回収可能にする為だと思います。
(ぐぐったらそれっぽい議論がされてる。)
おそらくluabindが5.1に対応しきれてないのではと予想して対策を検討中。
133:118
07/02/24 00:05:50
まちがえた
>>130では無く>>131です(自分レスしてどうするw)
134:デフォルトの名無しさん
07/02/24 04:44:20
>>132
あ・・・ほんとだぜんぜん循環してないorz
あとLua5.0でもフルユーザーデータにはメタテーブルもてたけどね。
lightuserdataの扱いが変わっただけかと。
問題はメタテーブルの__newindexとかで実際何をやってるかということだけど・・・
135:デフォルトの名無しさん
07/03/10 15:00:02
hoshu
136:デフォルトの名無しさん
07/03/18 02:28:50
Squirrel + SqPlus使ってる人とかっているんかな?
Squirrel側から呼ばせるC++側の関数で
戻り値としてあるクラスのインスタンスをPushするにはどうすればいいんだろう?
137:デフォルトの名無しさん
07/03/29 21:09:52
保守
138:デフォルトの名無しさん
07/04/06 23:54:07
Lua 5.1.2 released.
URLリンク(www.lua.org)
139:デフォルトの名無しさん
07/04/09 14:51:00
Squirrelのプログラムサイズがでかい…
squirrel.libだけで741KBってどうなんですか?
スクリプトエンジンとか組み込むの初めてなので標準的な尺度がいまいちわかりません。
コンパイルかけたファイルしか使わないと考えればいろいろと削れる部分はあるんでしょうけど、
そういう使い方するのが普通なんですかね?
Luaってどのくらいのサイズなんでしょうか?
140:デフォルトの名無しさん
07/04/09 20:17:31
>>139
自分でexe作成して確認してみな。
そっちのが手っ取り早いぞ。
141:デフォルトの名無しさん
07/04/10 09:23:05
>>139
それでかすぎな気がする
デバッグ情報はってない?
あとstdlibとかなしでそのサイズ?
142:139
07/04/10 18:40:41
squirrel.libのサイズが741KBです。
プログラムサイズが小さくなるような最適化設定にしてビルドしたら664KBでした。
両方ともreleaseです。
>>139
一応、プロパティの『デバッグ情報の形式』というところは無効になっています。
143:139
07/04/10 18:42:17
訂正
>>139じゃなくて>>141でした。
144:デフォルトの名無しさん
07/04/10 19:05:16
報告乙
145:デフォルトの名無しさん
07/04/10 19:28:56
にしてもでかすぎる気がする。
Linux/gcc-4.1.2だとストリップ前が403926バイト、後が295940バイト
Linux/gcc-3.3.6だとストリップ前が390954バイト、後が281116バイト
…Luaと比べると非常に大きいな。
146:デフォルトの名無しさん
07/04/10 21:07:09
いや、Luaがすんごい小さいってのもあると思う。
147:デフォルトの名無しさん
07/04/10 21:53:40
CとC++の差が大きいよ。サイズはでかくなるしコンパイル遅いしライブラリ
配布ではバイナリ互換性が怪しくなってない?
GCCのバージョンを揃えないとリンクに失敗するとか(←これ本当?)
PerlもRubyもPythonもPHPもLuaもオールCで書かれているのはその辺の事情
と思う。
FirefoxやOpenOfficeはC++で別に問題ないが、オプソのスクリプトエンジンの
ジャンルはC++は駄目でCが適切らしい.
148:139
07/04/10 22:12:21
いや、
URLリンク(www.wanderer.jp)
ここのサイトの人がコンパイルかけたら270KBくらいだった言ってたり…
VS2005でビルドしてたんですが、gccでメイクしたら450KBでした。
うーん、まだ何かあるのかな?
149:デフォルトの名無しさん
07/04/10 22:25:40
>>147
オープンでも C++ の実装も結構あるよ。
JDK, AVM2, Poly/ML, StrongTalk とか。
俺も C で書いた方が良いと思うけどね。
150:デフォルトの名無しさん
07/04/10 22:44:39
>>149
JDKがC++と判明して、オプソ界では扱いづらいな...と思われてたりして。
151:デフォルトの名無しさん
07/04/10 22:48:23
>>150
昔からソースは公開されていたし、nm すればソース見ないでも C++ だって
分かる人には分かっていたから大丈夫だよ。
152:デフォルトの名無しさん
07/04/10 22:52:18
>>151
あー、そうなんだ。
153:デフォルトの名無しさん
07/04/11 06:46:14
Squirrelって糞だね
154:デフォルトの名無しさん
07/04/11 07:38:08
>>148
VS2005で、SquirrelをDLL化して
Releaseビルド220Kだよ
155:139
07/04/11 13:13:13
>>154
それって『構成の種類』をdllに設定してビルドするってことですか?
たしかにsquirrel.dllが170KBくらいで軽くなっているんですが、
sqstdlib.dllがエラーで作成できない…。このリンクエラーどうしました?
156:139
07/04/11 15:34:58
>>154
libのサイズってコンパイルさせるために必要なデータが入ってるから
dllより重くなるみたいですね。知りませんでした。
実行ファイルのサイズに影響する分のサイズは二つのlibでだいたい270KBくらいなんだと思います。
ありがとうございました。
157:デフォルトの名無しさん
07/04/11 16:46:14
>>147
Rubyは作者が、オブジェクト指向の言語をオブジェクト指向の言語で書きにくいと言ってる。
>>153
どの辺が?
サイズ大きいのは別に害じゃないと思うけど
158:デフォルトの名無しさん
07/04/22 00:44:07
Xtal 復活記念あげ
159:デフォルトの名無しさん
07/04/28 20:45:47
何かネタないの?
160:デフォルトの名無しさん
07/05/08 17:11:31
保守
161:デフォルトの名無しさん
07/05/09 20:26:56
Squirrel - Lua/組み込み系言語 Wiki*
URLリンク(wikiwiki.jp)
Squirrelの参考リンク参考になりました。
サンクス。
162:デフォルトの名無しさん
07/05/13 11:16:32
初歩的なことかもしれないけど
Squirrelで
sq_open使うと
ハンドルされていない例外 : System.TypeLoadException: アセンブリ 'squirreltest, V
ersion=0.0.0.0, Culture=neutral, PublicKeyToken=null' から型 'SQVM' を読み込めま
せん。
at main()
みたいなメッセージでる。調べたけどわからん
助けて
163:デフォルトの名無しさん
07/05/13 11:33:09
すまん自己解決した
なんでこうなるのかよくわからんけど
164:デフォルトの名無しさん
07/05/13 11:41:18
>>163
自己解決したら、解決法をかけとあれほど・・・
165:デフォルトの名無しさん
07/05/13 11:52:47
URLリンク(support.microsoft.com)にのってる
1. MyProject.cpp ファイルに次のコードを含みます。typedef struct _t_Struct *myStruct;
2. 手順 1 で探したコードをの後、次のコードを追加します。 struct _t_Struct
{
};
を書いて
t_Structの部分をSQVMにしたら動いた
プログラム初心者なんで意味がよくわからないし本当に治ってるのかわからないけど
166:デフォルトの名無しさん
07/05/16 15:52:01
squirrel使う人増えれば嬉しいな
今ゲームに組み込んでるのでそこで得た知識をいずれ記事にしてまとめるかも
コードのどこを削るかとか、Windows以外で使うときにメモリ確保部分をどう書き換えるかとか
167:デフォルトの名無しさん
07/05/16 17:29:10
>>166
マジで期待したいです。
168:デフォルトの名無しさん
07/05/16 23:03:00
新言語 Xtalを作る日記
URLリンク(d.hatena.ne.jp)
169:デフォルトの名無しさん
07/05/18 00:35:54
リンク張り逃げだけじゃなく、なにかしらの解説してくれや。
170:デフォルトの名無しさん
07/05/18 20:11:56
>>169
ざっと目を通しただけなので細かいところはわからないけど、
C++への組み込みに使用するとき、スタックを意識せずによいみたい。
残念なのは、ソースがVC依存ぽいところ。
171:デフォルトの名無しさん
07/05/23 03:05:54
>>170
むしろ、レス見てると、gcc依存っぽいが。
172:デフォルトの名無しさん
07/05/23 17:33:52
>>168
xtal-language - Google Code
URLリンク(code.google.com)
こっちを出さないと
173:デフォルトの名無しさん
07/05/23 20:38:36
Cみたいに文字列の先頭から順にアクセスするとかできないんですか?
174:デフォルトの名無しさん
07/05/23 22:20:10
>>173
おまー、mixiのluaコミュでも同じ質問してるだろ
175:デフォルトの名無しさん
07/05/23 22:38:27
別に効率が悪いだけでstring.subでできるでしょ。
176:デフォルトの名無しさん
07/05/23 23:36:38
>>168,172
なんか凄いところで紹介されてるね
■404 Blog Not Found
君は新言語xtalを知っているか?
URLリンク(blog.livedoor.jp)
177:デフォルトの名無しさん
07/05/23 23:59:34
>175
ver5.1使ってるんですけど日本語化パッチが5.02までしかないみたいなんで
sjisに対応できないんですよ。まあ出るのを待ちますか。
178:デフォルトの名無しさん
07/05/24 00:01:39
>>177
自分で改造するんだ!
179:デフォルトの名無しさん
07/05/24 07:36:57
UTF8でいいじゃない
180:デフォルトの名無しさん
07/05/24 14:31:10
>>177
これはどう?
Lua@空想具現化プログラミング
URLリンク(hammm.dw.land.to)
181:デフォルトの名無しさん
07/05/26 21:53:29
誰かlua_qt使ってる人いますか?
182:デフォルトの名無しさん
07/05/26 22:25:11
はい
183:デフォルトの名無しさん
07/05/30 16:12:03
質問です。LuaからOpenGLって使えます?
C++ネイティブからOpenGL使っているところを、一部分のOpenGL関数だけ
Luaから呼びたいんですけど。
184:デフォルトの名無しさん
07/05/30 17:36:39
そういうやつが、どっかにあった気がす
WikiLuaだっけ
185:デフォルトの名無しさん
07/05/30 18:38:34
というか逆に使えないと思う理由は何?
186:デフォルトの名無しさん
07/05/30 19:06:52
俺が昔使ってたやつはまだ大まかな関数しかなかったから、
自分で書いて命令増やしたりしてたな。
HDDと共に吹っ飛んでもう手元にないが。
187:デフォルトの名無しさん
07/06/02 16:37:36
>>147
GCCのABIがかわったのは、C・C++関係ないだろ。
188:デフォルトの名無しさん
07/06/02 16:39:26
>>166
は、どうした?
189:デフォルトの名無しさん
07/06/06 20:10:29
あげる
190:デフォルトの名無しさん
07/06/07 07:23:06
WikiXtalとかないの
191:デフォルトの名無しさん
07/06/07 20:10:15
SquirrelをDLL化して使っている人いませんか?
squirrel.dllを作ろうとするのですが、失敗します・・・
うまくできた人いない?
192:デフォルトの名無しさん
07/06/07 20:21:05
VisualStudio 2005 の、squirrelプロパティで、構成の定義で、
「ダイナミック ライブラリ (.dll)」を選べばいいんですよね?
あれ?あ、できました。
何でできなかったんだろ・・・。
ところで、
sqstdlib は、DLL化できないのですが、これってもしかして、付属のライブラリが使えないことを意味するのでしょうか?
193:191
07/06/07 20:51:45
sqstdlib.dll ビルドできました。
一旦、squirrel プロジェクトで、lib\ に Squirrel.libを吐いておいて、
sqstdlib プロジェクトで、プロパティ→構成プロパティ→リンカ→→入力 で、
..\lib\squirrel.lib をパスに加えたら、コンパイル通りました。
これでいいのかな?
これで上手くいっているのか、わからないのですが、
他言語(Delphi)から、使ってみようと思います。
ああ、ヘッダーかかなきゃ・・・
194:191
07/06/07 20:57:48
squirrel.dll 200K
sq.exe 348K
sqstdlib.dll 348K
なんかサイズが、マズイ気がします。
もしかして、squirrel.dllの中身全部、sqstdlib.dllにも入っちゃってるんでしょうか?
(..\lib\squirrel.libつっこんだんだから当り前か・・・)
別プロジェクト作って、一つのDLLにまとめた方が手っとり早いのですかね?
195:デフォルトの名無しさん
07/06/07 22:39:14
半年ROMってろ
196:デフォルトの名無しさん
07/06/07 23:43:22
スタティックリンクでいいじゃん
197:デフォルトの名無しさん
07/06/07 23:51:10
>>195
ムカッ!!
>>196
C++じゃないから、できないもん・・・
198:デフォルトの名無しさん
07/06/07 23:53:13
>>196
え、あ、もしかして、zlibみたいに、.oでリンクできるかってことか?
できるんかいな・・・
Delphiと、結合となると、BCCもってきていコンパイルか('A`)
どっちにせよだな・・・
199:デフォルトの名無しさん
07/06/08 07:14:40
自分で調べて学習する気がないなら、いくら教えても無駄だ
200:デフォルトの名無しさん
07/06/08 07:50:47
191はがんばってるとおもうけど
201:デフォルトの名無しさん
07/06/08 08:52:20
>>199
ひとつも教えてやってもいないじゃないかw
202:191
07/06/08 17:30:58
squirrel と sqstdlib 合わせて、まとめた squirrel.dll 作れました。
普段、VS.net使わないから、いやに手こずったぜ・・・
作り方は、後でかくぜ
203:191
07/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 ができていたら成功ー
面倒なら、フィルタは作らんでもいいけど・・・
204:191
07/06/08 17:49:38
ようは、squirrel と sqstdlib のファイルまとめて、DLL出力にしただけです。
たぶん、普段 VC使っている人なら見なくてもできる。
205:デフォルトの名無しさん
07/06/08 17:55:47
>>172
これ面白そうだね。でもまだバージョンが1.0未満か
206:191
07/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で開く(新しいプロジェクトに変換する)
207:191
07/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で開く(新しいプロジェクトに変換する)
208:デフォルトの名無しさん
07/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しなくてよいのかな?
209:デフォルトの名無しさん
07/06/08 20:28:54
Squirrel 2.1 リファレンスマニュアル
URLリンク(muffin.cias.osakafu-u.ac.jp)
> Unicode
>
> デフォルトではSquirrelの文字列はプレーン8ビットASCII文字となる。
> しかし、VMにシンボル'_UNICODE'がdefineされているなら、
> コンパイラとAPIで文字が16ビットとして扱われる。
210:デフォルトの名無しさん
07/06/08 20:44:06
>>209
_UNICDOEをプリプロセッサの定義に設定して、コンパイルしたのですが、
今度は、
>>208のファイルで、
・sjis
・UTF-8N
・UTF-16 LE-BOM
でどれも、
Error [?????????????8・?8?8?8?
と出てしまい、実行できません。
困りました・・・。
211:デフォルトの名無しさん
07/06/08 20:47:25
>>210
ちなみに、_UNICODEを定義すると
// hello
print("hello")
とだけ書いたファイルでも
Error [?????????????8・?8?8?8?
といわれてしまいます。
212:デフォルトの名無しさん
07/06/08 21:28:30
SqPlusつかったほうがはやいかもね。
213:デフォルトの名無しさん
07/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
多言語から利用したいので、たぶん使えないのですよ・・・
参考にするのはできると思いますが・・・
214:デフォルトの名無しさん
07/06/12 18:36:04
>>213
残念ながら、_UNICODEなしで、UTF-16は駄目のようです。
_io_file_lexfeed_UCS2_LE あたりを見ればわかるのですが、
wchar_t を char にキャストしていますので、日本語がつぶれてしまいます。
UTF-8では、そのようなことは起きないようですので、
_UNICODEなしの場合は、UTF-8を使いましょう。
という結論です。
215:デフォルトの名無しさん
07/06/12 18:50:36
>wchar_t を char にキャスト
すげえなこれ。マジかよ
216:デフォルトの名無しさん
07/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 になり、ちゃんと読めます。
217:デフォルトの名無しさん
07/06/12 20:59:10
>>212
> 多言語から利用したいので、たぶん使えないのですよ・・・
kwsk
218:デフォルトの名無しさん
07/06/13 02:56:41
>>217
SqPlusはテンプレートベースの、スタック操作とか減らすためのライブラリというように見えたのですが、
違うのかな?
テンプレートベース=C++べったりなので、そのまま多言語から使うのは難しいという認識です。
いや、よく見ていないのですが・・・
これから見てみます。
219:デフォルトの名無しさん
07/06/13 11:14:11
>>210
遅レスですまんけど、
たんにコンソール出力がUNICODEに対応してないからじゃないのかな
エラー出力をフックして、
コード変更してみたらどうかな
220:デフォルトの名無しさん
07/06/13 17:05:09
>>219
>>216
221:デフォルトの名無しさん
07/06/13 17:06:56
>>216
squirrelの追記。
プロジェクト sq などの、printを使うプロジェクトの場合、文字化けする(コンソールに?????と出力される)ので、
setlocale( LC_ALL, "" );
を最初の方に入れてロケールの設定をしておくこと。
222:デフォルトの名無しさん
07/06/13 17:22:45
setlocaleって内部で何やってんのかね
SetThreadLocaleとかのAPIを呼び出してるのかな
223:デフォルトの名無しさん
07/06/15 11:15:20
luabind使ってる人に質問。引数にunicode文字列を持つC++の関数をLuaから呼び出した
いときってどうやる?
224:デフォルトの名無しさん
07/06/15 12:11:08
>>188
すみません。ちょっと忙しいのでなかなか取り掛かれません。
自分はLuaを使ったことはないし、スクリプトをいじるのも今回が初めてですし、
プログラマとしても経験不足なのは否めないのであまり期待されても困るのですが、
squirrelを使い始めたばかりの人が参考に出来るくらいの情報を提供する自信はあるので、
そのうち必ずやります。
225:デフォルトの名無しさん
07/06/16 01:37:01
>>203
補足。
APIに、externだけでなくて、 __declspec(dllexport)つけとかないと、
DLLとして外部に関数を解放できない。
俺アフォw
- #define SQUIRREL_API extern
+ #define SQUIRREL_API extern __declspec(dllexport)
226:デフォルトの名無しさん
07/06/17 15:29:22
Luaの質問。
Cで定義した変数をLuaのグローバル変数にして、
Lua側で値を変更するとC側でも変更されてるようにならないかな?
userdataかlightuserdataあたりを使うんだろうけど、、、
227:デフォルトの名無しさん
07/06/18 09:38:11
lightuserdataをdoubleへのポインタだと決めてかかって
無理やりluaの実数書き込んだり読んだりできるようにluaを書き換えるのは
大した手間じゃないと思うぞ
228:デフォルトの名無しさん
07/06/19 16:55:22
>>227
何の話?
229:デフォルトの名無しさん
07/06/20 23:38:23
なんか股間がザーメン臭いんだけど
230:デフォルトの名無しさん
07/06/21 00:10:56
>>229
遺精か。あんまり頻繁にあるようなら病院逝けよ。お大事に。
231:デフォルトの名無しさん
07/06/21 00:30:35
真性マゾルートだと一切触れずにいける様になるらしい
232:デフォルトの名無しさん
07/06/26 19:09:55
月と栗鼠だったのかorz
233:デフォルトの名無しさん
07/06/26 19:15:33
誤爆
234:デフォルトの名無しさん
07/06/26 19:34:06
Lua、LL魂で紹介されるらしいね
235:デフォルトの名無しさん
07/06/28 21:53:59
Luaって何て読むんですか?
ぅあ?
236:デフォルトの名無しさん
07/06/28 21:58:04
>>235
ルア
237:デフォルトの名無しさん
07/06/28 21:58:44
ポルトガル語で月って意味らしいし
英語だとルナだから ルアじゃない?
238:デフォルトの名無しさん
07/06/28 22:06:53
>>232
誤爆じゃねーじゃん
239:デフォルトの名無しさん
07/06/28 22:30:30
「ぅあ」ワラタ
240:デフォルトの名無しさん
07/06/28 22:54:58
すいませんそのまま打ったらぅあなのでなんてよむのか分からなくて
241:デフォルトの名無しさん
07/06/29 00:08:09
「ぅあ」は良いなw
242:デフォルトの名無しさん
07/06/29 14:58:30
萌えるな
243:デフォルトの名無しさん
07/06/29 18:25:03
プログラミング言語ぅあ その4
244:デフォルトの名無しさん
07/06/29 21:14:15
Luaの呼び方は「ぅあ」であることが決定された瞬間だな。
245:デフォルトの名無しさん
07/06/29 21:19:09
瞬間はいいが、次スレなんてどんだけ先だよw
246:デフォルトの名無しさん
07/06/29 21:28:27
>>245
あと2〜3年だな
247:デフォルトの名無しさん
07/06/29 22:27:28
ぅあって、単なる配列も整数のインデックスなのに辞書みたいに毎回ハッシュを
計算するって本当ですか?
あとインデックスが0じゃなくて1から始まるらしいんですけど、何故なんでしょう・・・
この点が無ければ、スクリプト言語で今のところ最有力候補なんですが・・・
248:デフォルトの名無しさん
07/06/29 23:00:05
>247
配列とハッシュ表が区別されない同一のデータ構造なのは本当。
でも、ふつうに配列と使っているときには、配列用のパートにつっこまれてハッシュなんか計算しないよ。
つまり効率が気になるようなら、そこは効率わるくならないようになっている
と考えてよい。
なぜ1から始まるかは知らん。
249:デフォルトの名無しさん
07/06/30 08:13:12
1から始まるぐらいで嫌ならぅぁあ向いてないよ
250:デフォルトの名無しさん
07/06/30 11:21:38
>>247
その辺を改良したのがsquirrelなんじゃね?
squirrelもなんかよみにくね?
251:デフォルトの名無しさん
07/06/30 16:17:40
よみにくね?
?
252:デフォルトの名無しさん
07/06/30 19:16:39
よみにいな
じゃあすくいっれるの読み方も>>235に考えてもらおうぜ
253:デフォルトの名無しさん
07/06/30 22:07:23
>>248-250
どうもありがとうございます。配列の件よく分かりました。
あとSquirrelってのは知りませんでした・・・ちゃんとスレ読んでなくてすみません
Squirrel、いいですね、検討してみます
254:デフォルトの名無しさん
07/07/01 13:26:38
>>227
超遅くてごめんレスありがとう。そんなすごいこと可能なら検討してみる。
でも、ぅあ書き換えるってかなりの手間じゃないかな、、、
255:デフォルトの名無しさん
07/07/01 13:58:45
書き換える、の対象を勘違いしてないか?
256:デフォルトの名無しさん
07/07/02 02:35:07
Squirelの感想の続きが聞きたい
257:デフォルトの名無しさん
07/07/02 08:41:18
>>256
別の人でよければ
GCで時間くわれないからゲームで重宝してます。
258:デフォルトの名無しさん
07/07/02 08:42:02
あとついでに、
squirrel2.1.2 の動きがあるね
259:デフォルトの名無しさん
07/07/02 23:24:14
そんなの屁でもないぜ
260:デフォルトの名無しさん
07/07/02 23:25:18
誤爆
261:デフォルトの名無しさん
07/07/02 23:27:27
warata
262:デフォルトの名無しさん
07/07/07 16:34:44
あげますよ
263:デフォルトの名無しさん
07/07/07 16:44:26
阻止
264:デフォルトの名無しさん
07/07/10 11:37:13
誰か
VC++2k3での使い方
頼む
265:264
07/07/10 12:22:55
一週間ぐらい悩んでたのに、質問書いた途端に事故解決した
プロジェクト作ってサンプルソース加える
本家でdownload binaries (ここで違うサイトへ飛ぶ) download lua-----vc6_lib.zipをダウンロード
プロジェクトのフォルダに解凍したもの突っ込む
includeのフォルダの中身をソリューションエクスプローラーのヘッダーファイルのところに放り込む
lua5.1.libをソリューションエクスプローラーのリソースファイルのところに放り込む
あとはプロジェクトのプロパティで
全般のマネージ拡張をいいえ
リンカの入力 特定ライブラリの無視をlibcmtd
これで実行できた
マネージ拡張の部分変えなくてもコンパイルとリンクは普通に通るから何が原因か訳分からなかった
チラシの裏だったかもしれないがとりあえず
266:デフォルトの名無しさん
07/07/13 20:41:43
ゲーム用スクリプトとしては有名らしいけど
使ってる国内の市販ゲームってほんとうにあるの?
267:デフォルトの名無しさん
07/07/13 20:53:24
知るか
268:デフォルトの名無しさん
07/07/14 01:13:39
>266
国内では知らないが
海外含めればFarCryとかRagnarokOnline(ホムンクルス用)か?
269:デフォルトの名無しさん
07/07/14 12:48:59
1つ質問
組込言語を使う場合、
・全ての処理を記述する
・部分的に処理を記述する(敵の移動ルーチンなど)
どっちが良いのかな?
270:デフォルトの名無しさん
07/07/14 13:01:16
>>269
・分離が必要な部分のみを記述する(敵の移動ルーチンなど)
271:デフォルトの名無しさん
07/07/14 13:29:28
RigidChipsに組み込まれたLUAでFFTを実装しているんだが
なんかうまくいかない
参考にしているCソースのFFTは基本が再帰呼び出しなんだが
ポインタなぞ使えないし
色々やってみたが、ナンカ Arithmeric fireldなんとかって出てエラーになりよる
もう頭が沸騰しそうだぉ
272:デフォルトの名無しさん
07/07/14 14:41:09
質問です。
C側からLua内のテーブルにアクセスする場合
URLリンク(tgws.fromc.jp)
↑を使うと「table.member.value」のような形の値にはアクセスできますが
table[1].value のような配列形のテーブルに入っている値にはアクセスできません。
実現する方法はありますか?
273:デフォルトの名無しさん
07/07/14 16:14:39
>>272
そのURLのどこを参考にしてるのかわからんけど・・・
キーの値としてpushstringしてるところをpushnumberにすればいいんじゃないの?
274:デフォルトの名無しさん
07/07/14 18:57:10
>>269
ケースバイケースじゃね?
全部スクリプトでいいならその方がらくできそうだし
275:デフォルトの名無しさん
07/07/14 19:08:19
LuaとRubyって何か似てますね
276:デフォルトの名無しさん
07/07/14 21:43:31
そうかなあ。
277:デフォルトの名無しさん
07/07/14 22:47:13
endくらいだろ
278:デフォルトの名無しさん
07/07/14 23:54:44
JavaScriptのほうが似てるという噂
279:デフォルトの名無しさん
07/07/15 00:48:46
Squirrelなら、何となくJavaScriptに似てなくもないが、ぅあは・・・
280:デフォルトの名無しさん
07/07/15 00:49:57
Rubyはいろんな言語からのパクリンだから
281:デフォルトの名無しさん
07/07/15 00:59:04
色々な言語のパクリじゃない言語なんて無いですけどね。
Luaもパクリンしまくりですよ。
282:デフォルトの名無しさん
07/07/15 01:08:20
>>279
構文にしか目がいかないヘタレ発見
283:デフォルトの名無しさん
07/07/15 01:12:02
>>281
いや、Rubyのパクリ方は酷い
オリジナリティなんてない
他の言語と比較するなんておこがましい
284:デフォルトの名無しさん
07/07/15 01:16:34
別に酷くても良いんじゃない
上手くアセンブル出来ていて、それが有用ならオリジナリティなんて要らないでしょ
俺はまともにスレッドを扱える様になるまで使う気は無いけど
285:デフォルトの名無しさん
07/07/15 01:21:17
>>283
具体的に何がどう酷いの?
どうせパクリ元の言語なんて知らずに見聞だけで言ってるんでしょ?
プログラミング言語の歴史を少しでも知ってたら、
「パクるなんて酷い」なんてとてもいえないんだがね。
おこがましいのは無知なお前。
286:デフォルトの名無しさん
07/07/15 01:27:03
どちらかと言うと、パクりつつけなしているのが酷いような
287:デフォルトの名無しさん
07/07/15 01:59:36
パクリ=Ruby厨が集まるキーワードです
288:デフォルトの名無しさん
07/07/15 02:11:01
反論できなくなるとレッテルを貼ってごまかします。
289:デフォルトの名無しさん
07/07/15 02:19:04
良く分からんが >>288 的には、誰が誰に反論すべき局面だったんだ?
290:デフォルトの名無しさん
07/07/15 02:22:10
自分だってわかってるからそうやってレスしてんでしょ?
291:デフォルトの名無しさん
07/07/15 02:23:39
パクリパクリ言うなら、C#の方がひどいだろ
Delphiパクった上に、J++までパクッたあげく文法は、C似だし
最近は、関数型言語まで朴楼としている
292:デフォルトの名無しさん
07/07/15 02:28:11
プログラミング言語の世界において、
パクリとかは関係無いし、どーでもいいことだってことを理解しないと前に進めません。
Rubyをパクった言語もいくつも生まれています。
293:デフォルトの名無しさん
07/07/15 02:30:02
>>290
だから自分って誰だよ...
君のレスだけ迷子になってるっぽかったから聞いてあげたのに。
294:デフォルトの名無しさん
07/07/15 02:34:28
>>293
はいはい、自分じゃないと思うならいちいち反応しなくていいよw
バカだなw
お前は2chでそうやっていちいち迷子のレスを案内してやってのかいw
295:デフォルトの名無しさん
07/07/15 02:41:18
以後、ru○yの話題は禁止
296:デフォルトの名無しさん
07/07/15 02:47:15
>>289
すまん。見てたが良くわからないから
偉い人が降臨するのを待った方がいいと思った。
でもローカル変数はenvironmentが持ってるわけじゃないし
(Function Prototypeが持ってるぽい)
他の関数はスコープの外だから無理だと思うよ。
table:functionの形式にしてselfに持たせるのはどう?
297:デフォルトの名無しさん
07/07/15 03:31:15
>>294
>お前は2chでそうやっていちいち迷子のレスを案内してやってのかいw
見ていて可哀想だなと思った時だけだよ。
298:デフォルトの名無しさん
07/07/15 11:58:49
>>297
かわいそうなのはお前なんだけどなw
299:デフォルトの名無しさん
07/07/15 12:44:33
ムjもID出ればいいのにな。
毎行wつくのがうざwww
300:デフォルトの名無しさん
07/07/15 12:50:26
すまん。見てたが良くわからないから
偉い人が降臨するのを待った方がいいと思った。
301:デフォルトの名無しさん
07/07/15 13:02:21
>296,300
どうして >126 がコピペされているんだろう。
126を書いたので気になる。間違ってるならそう言ってくれよう。
302:デフォルトの名無しさん
07/07/15 13:29:46
すまん。見てたが良くわからない
303:デフォルトの名無しさん
07/07/15 15:00:56
>>298
そんな無理に頑張らなくても、もう終わりで良いんじゃない?
304:デフォルトの名無しさん
07/07/15 15:04:58
お前らこんな人口の少ないスレでなにやってんだよ
305:デフォルトの名無しさん
07/07/15 15:18:50
>>303
お前が必死に引き伸ばしてるんだろうが。バカだな・・・。
306:デフォルトの名無しさん
07/07/15 15:22:39
>>305
バカだと思ったらレスしなきゃ良いんじゃね?
w 付けるのも止められたんだしw
307:デフォルトの名無しさん
07/07/15 15:36:48
Ruby>>>>>>>>。。。。Lua
308:デフォルトの名無しさん
07/07/15 16:32:24
久しぶりに二桁未読があって楽しみに開いたらやっぱりか…
ちょっと期待しちゃった俺がばかだった( ´・ω・)
309:デフォルトの名無しさん
07/07/15 16:59:03
>>275-307まで脳内削除
310:デフォルトの名無しさん
07/07/15 17:17:56
RUBYYYYYYYYYYYYYYY!!!!!!!!!!!
311:デフォルトの名無しさん
07/07/15 17:43:06
これからはXtalの時代でしょ
312:デフォルトの名無しさん
07/07/15 17:46:26
もう俺言語はいいよ
バグあったら最悪。大抵デバッグで詰まるし
結局緊急時とかは既成のCとか使っちゃうわけだし?
313:デフォルトの名無しさん
07/07/15 17:54:56
>>306
バカかお前。
お前がまず「もう終わりで良いんじゃない?」と思ったんだから、
レスしなきゃいいだろうがバーカ。
314:デフォルトの名無しさん
07/07/15 18:07:59
バカしか書けんのか、この荒らしは...
虚しいのう...
315:デフォルトの名無しさん
07/07/15 18:11:42
バカなお前のために、俺の語彙力を発揮しろと?
というか、バカなんだから理解できないだろ?
316:デフォルトの名無しさん
07/07/15 18:13:01
>>313
ここはぅあのスレですよ。喧嘩をしたいのなら他所でやって頂けませんか。
317:デフォルトの名無しさん
07/07/15 18:14:21
>>315
あまりにも程度が低過ぎてワラタ。お前面白いからもっと頑張れw
318:デフォルトの名無しさん
07/07/15 18:14:27
もう終わりで良いんじゃない、と言った本人がダラダラと続けてるからムリ
319:デフォルトの名無しさん
07/07/15 18:15:39
>>317
お前もガンバレよ、そのネット難民の生活をなw
320:デフォルトの名無しさん
07/07/15 18:16:57
うわー、レッテル貼られたw
何だっけ? レッテル貼るのは反論出来ない時のごまかしなんだっけかw
321:デフォルトの名無しさん
07/07/15 18:17:44
これが2ch名物、"悔しいからお互いにレスし続ける合戦"ですか。
低脳二人がこの合戦にはまると、まさにエンドレスサマー
322:デフォルトの名無しさん
07/07/15 18:18:53
>>320
えw
お前レッテルの意味わかってるの?w
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5049日前に更新/210 KB
担当:undef