1 名前:デフォルトの名無しさん mailto:sage [2009/05/25(月) 09:11:41 ] LuaやSquirrelなどアプリケーションへの組み込み用途で 使われるプログラミング言語についてのスレッドです まとめwiki(なにか質問する前に必ずみること!) wikiwiki.jp/lua/ その他の参考URLは>2から ■前スレ 【Lua】組み込み系言語総合【Squirrel】 pc12.2ch.net/test/read.cgi/tech/1205208141/ ■過去スレ その3 pc11.2ch.net/test/read.cgi/tech/1160799232/ その2 pc8.2ch.net/test/read.cgi/tech/1063711237/ その1 pc5.2ch.net/tech/kako/1034/10341/1034182349.html
302 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 14:09:07 ] 実際にはluaL_openlibsが必要だからコストが大きいよ 擬似コードにはいちいち書かないだろうけど 擬似コードを書くとどうしても、目に見えない物に頼りがちだよね
303 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 16:00:28 ] ちょっと前にLuaで乱数を作っていたものだけど 今度は重複しない乱数を表示させたいと思っている。 でも何度やってもできない。。。 ヒントだけでも教えてください
304 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 16:05:01 ] そもそも重複しないものは乱数とは言わない。もはや lua とは関係ない話なので手頃なアルゴリズム系の質問スレに移るのをオススメする ヒント:シャッフル
305 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 16:19:02 ] >>304 レスありがとう ということは、最初に規定量の数値を指定しておいてそれをシャッフルすればいいってことか! ありがとう。
306 名前:デフォルトの名無しさん [2009/10/18(日) 16:59:56 ] 個人情報が流出しても、ニュー速民は困る人いないよね? tsushima.2ch.net/test/read.cgi/news/1255851428/
307 名前:デフォルトの名無しさん mailto:sage [2009/10/18(日) 23:54:16 ] (C#^ω^)
308 名前:デフォルトの名無しさん [2009/10/23(金) 14:27:21 ] 以下のようなプログラムで クリティカルセクションの所有権を放棄し それぞれのスレッド、スクリプトの実行を 安全に終了させるにはどうしたらいいでしょうか? -- test.lua while true do foo() end -- test2.lua while true do foo() end -- main.cpp void thread1(){ ・・・ if(luaL_dofile(L,"test.lua")){ ・・・ } void thread2(){ ・・・ if(luaL_dofile(L,"test2.lua")){ ・・・ } int foo(luaState* L){ EnterCriticalSection(&CriticalSection); // 少し重めの処理 LeaveCriticalSection(&CriticalSection); }
309 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 00:21:40 ] 1つ1つのLuaステートをLua_yield使って個別に動かすのはダメなの?
310 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 00:42:33 ] あれ もしかしてAngelScriptって結構良いんじゃね? 名前が可愛いからちょっと舐めてたわ
311 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 00:51:08 ] >>310 できたら、どの辺りが気に入ったか詳しく
312 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 06:30:35 ] ついでに、このスレに常駐しているAngelScript信者の方にお聞きしたいのだが、 LuaやSquirrelと比べて優れている点は何がありまんすか?
313 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 06:39:49 ] // / / パカッ //⌒)∩__∩ /.| .| ノ ヽ / | | ● ● | / | 彡 ( _●_) ミ AngelScript!! / | ヽ |∪| /_ // │ ヽノ \/ " ̄ ̄ ̄ ̄ ̄ ̄ ̄(..ノ
314 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 07:09:44 ] AngelScriptの@がよくわからん。 オブジェクトの参照なのか? Hoge@ hoge; みたいなの。 C++みたいに、インスタンス入れる変数と参照がわかれているのか?(C++詳しくないからなんtねいったらいいかわからん) LLなのに面倒な言語だな… 全部、デフォで参照でいいと思うんだが
315 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 12:38:48 ] >>314 スクリプト言語の癖に静的型付言語だからなぁ。 それって本当に意味あるのか? って思ってしまう。 Booとかも触ってみてその動作速度は認めるけど、スクリプトの記述が面倒に感じる。
316 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 13:28:09 ] ActionScript3.0 もいちおうスクリプト言語だけど、静的型付言語。 まぁ、インタプリタじゃないけどね。
317 名前:デフォルトの名無しさん mailto:sage [2009/10/24(土) 23:43:43 ] >>312 ・文法がC++まんまなので書きやすい ・C++との連携が簡単 ・クラスとかほぼそのまま使える ・const〜やenumなど、定数定義が可能 ・#includeも可能 こんなところか? >>314 その例だと、「Hogeクラスの参照型」って扱いになる。 C++のHoge &という記述に近い。
318 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 00:41:08 ] スクリプトを自分で改造して使いたいんですが、ライセンスが緩くて ソースが読みやすく短い組み込みライブラリのお勧めを教えてもらえませんか? 今のところLuaが最有力候補だと思ってます。
319 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 01:10:08 ] Squirrelがソース短いんじゃなかったっけ。読みやすさは知らんが。
320 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 05:11:42 ] >>319 実質としてはそんなに悪いコードではないが、しかし決して良いコードではない。 そして、SqPlusは絶対に読むな。頭が痛くなること請け合い。 それはそうと、Xtalのコードは大変いいと思うぞ。 言語自体の仕様は首を傾げたくなるところがあるが。
321 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 08:12:58 ] \ l´⌒\⌒\ \\ \ \ ヽ ) ) \\ \\ ( \ \∩___∩ \\ \ \ ⌒⌒| ノ ヽ \\ \ \ / ● ● ト、\ \\\ \ Y | ( _●_) ミ\ \\\ \ / 彡、_ |∪| ノ \ \\\ (____)―ヽノ' ヽ  ̄ ̄ ヽ\\ \, j l l .l } Lua! l (_ノノノノ
322 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 17:53:23 ] >>320 Xtalのコードは俺の頭じゃ解析不可能だからLua読んでます。
323 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 18:55:12 ] SqPlus使おうと思ったらもう全然更新してないのか いったいどれにすれバインダ
324 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 20:22:51 ] そもそもSquirrel自体全然盛り上がってないというか終わってるというか 始まる前に終わっちゃったよ的な
325 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 20:29:35 ] Lua 5.2まだー
326 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 22:01:57 ] >>323 SqPlusはダメすぎる、忘れましょう、使ってる人はたぶんいません squirrelのバインダは自分で使い易いように自分で書いた方が1024倍マシよ
327 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 22:15:15 ] そこでバインダとか無くても全然問題のないAngelScriptの出番だな
328 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 22:36:22 ] >>326 ごめん、動いてるものはさわるな原則にのっとって使い続けてる^^; 一部手はいれてあるけど。 時間あったら新しいバインダにしたいんだけどなかなか……
329 名前:デフォルトの名無しさん mailto:sage [2009/10/25(日) 23:08:08 ] スクエニのゲームはSqPlus使ってるって cedecのスライドに書いてあったよね。
330 名前:318 mailto:sage [2009/10/26(月) 01:03:53 ] SquirrelとXtal読んでみます。 ありがとうございました。
331 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 02:05:58 ] こうなったらLuaとSquirrelとAngelScriptの合わせ技でいくか
332 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 14:10:36 ] angelscript初めて知った。いいなこれ!! スタックゴニョゴニョしなくていいからコード読みやすいし なによりデフォルトでメモリ上から「のみ」スクリプトコードをロードできるってのがイイ! ゲーム開発だと裸のままスクリプトファイルが置いてあることなんてないからね。。。 モジュールのロードとかもオブジェクト指向で非常に素直に書けるぽいし さっそくLuaを破棄して組み込んでみよう
333 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 14:25:29 ] AngelScript つかう場合は、これ C++ だけでよくね?という思考に陥らないように注意な
334 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 16:01:05 ] まんまC++なのがメリットでありデメリットでもある
335 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 20:39:28 ] >>AngelScript つかう場合は、これ C++ だけでよくね?という思考に陥らないように注意な 前使おうとして陥った ちょっと聞きたいんだが、AngelScriptを使っている人や使わなくなった人(他の言語に移った人)は なんで使っている、使わなくなった? C++そのままというか継承に制限があるのが大きくてSquirrelに移ろうと思ってるんだけど、 他の人はどう思ってるのか気になる アプリ実行時にちょこちょこ書き直したり、コンパイル/リンク時間の省略とかスクリプト自体の メリットは分かるんだが…
336 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 21:10:20 ] コルーチン
337 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 23:17:06 ] コルーチン
338 名前:デフォルトの名無しさん mailto:sage [2009/10/26(月) 23:21:46 ] チンコール
339 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 08:20:18 ] ∩_ 〈〈〈 ヽ 〈⊃ } ∩___∩ | | | ノ ヽ ! ! / ● ● | / | ( _●_) ミ/ Lua!! 彡、 |∪| / / __ ヽノ / (___)
340 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 09:35:24 ] >>335 C++との連携が簡単、C++クラスをほぼそのままで使える、複数のコンテキスト(LuaStateに相当?)を同時に処理させるのも簡単、 定数定義や列挙型も使える、といった点が便利なんで使ってる。 特にC++との連携はLuaやSquirrelより簡単だし、マニュアルもサンプルも英語だけどわかりやすい。
341 名前:デフォルトの名無しさん mailto:sage [2009/10/27(火) 18:19:47 ] コルーチン
342 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 00:13:00 ] AngelScriptに乗り換えようかな 細かいとこがc++と違和感無くて簡単だわ
343 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 04:00:43 ] そこで敢えてPawnという選択肢も
344 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 04:39:16 ] コルーチ
345 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 13:47:14 ] AngelScript と Luaって メモリ消費や処理速度はどれほど違う?
346 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 14:09:25 ] /ヽ /ヽ ':' ゙''" `':, ミ ・ω・ ;, :; . っ ,つLua! `:; ,;' `( /'"`∪
347 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 14:17:51 ] Pawnつえーな、使い勝手とか全然知らないけど ttp://codeplea.com/game-scripting-languages
348 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 14:48:51 ] これ見るとリス使いの俺涙目だわ
349 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 15:50:27 ] ・メモリ消費低 ・静的型付 ・スレッドセーフ ・スタック操作なし(またはLuaより容易) で選ぶとしたら やっぱりAngelScriptがいいのかな〜
350 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 15:51:52 ] おなじくリス使いの俺涙目(笑) まあ、リスはわかりやすいからいいんだよ!とか言ってみる。 でも Pawn の性能は魅力だな。とりあえず組み込みテストして みてよさそうなら、静的スクリプト言語としての併用もかんがえてみよう
351 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 15:53:37 ] まあなんとかとかんとかはトレードオフってやつだな
352 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 18:03:22 ] Pawnはスクリプト内で日本語文字列を扱わなくてもいいならいいかも
353 名前:デフォルトの名無しさん [2009/10/28(水) 18:17:32 ] リスのバグ発見。 setdebughookを仕掛けた状態で_callメタメソッドをコールすると死ぬ。(SQVMでぬるぽ発生) ちなみにdebughook関数の中身を空にしても同様です。 公式フォーラムの垢を紛失してしまったので誰か報告たのむ squirrel-lang.org/forums/7/ShowForum.aspx function debughook(event_type, sourcefile, line, funcname) { local fname = funcname ? funcname : "unknown"; local srcfile = sourcefile ? sourcefile : "unknown"; ::print(::format("%s:%d: [DEBUGHOOK:%c] %s\n", srcfile, line, event_type, fname)); } ::setdebughook(debughook); class FOO { function test() { ::print("FOO::test()\n"); } function _call(orig_this) { ::print("FOO::_call()\n"); } }; local foo = FOO(); foo.test(); ::setdebughook(null); foo(); ::setdebughook(debughook); foo(); // Segmentation fault (core dumped)
354 名前:デフォルトの名無しさん mailto:sage [2009/10/28(水) 18:39:16 ] >>353 すんまそ、環境を書いてなかった。 Squirrel 2.2.3 stable VisualC++, cygwin, Linux, 何れでも発生。 Squirrel 3はまだ試していません。
355 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 12:22:06 ] Pawn Language Guide っていうドキュメントみてみたけど、無名関数がつくれないっぽいね。 だとするとクロージャが作れないから、ちょっと不便かな。 状態遷移とかの記述に特化しているようだし、UnrealScript に似ているかも。
356 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 17:27:53 ] 347のリンク先見て思ったが、GameMonkeyが何気に性能いいな。
357 名前:デフォルトの名無しさん mailto:sage [2009/10/29(木) 20:25:50 ] >>353 拙い英語ですが報告しておきました。 temp_regがメタメソッドコール前にhookで使われるのが一因っぽいです。
358 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 04:54:40 ] Squirrel フォーラムに代理の報告をしてもらえるなら、 sq_mem.cpp をはじめ メモリ確保失敗についてまったく考慮してないのを修正してくれ、と頼んでみて もらえまいか? 組み込み言語としてリソースの乏しい環境で使うことを考えれば、メモリ確保が 失敗しないなどという前提で組まれるとツライものがある。
359 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 04:56:12 ] s/sq_mem/sqmem/
360 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 04:57:50 ] なんで自分で報告しないのん?
361 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 05:00:20 ] 残念ながら英語で会話ができる自信がない。 リファレンスマニュアルを読む程度ならなんとかなるんだけど。
362 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 05:20:40 ] パッチ作って送れば英語できなくてもだいじょぶじゃないかな。 here is a patch for memory allocation error とか一文だけ書いとけば通じると思う。
363 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 05:42:29 ] うーん。問題はコード全体に散らばってるんで、まずは全体的な方針をはっきり 決めてからじゃないとマズイ感じ。 sq_malloc や sq_realloc がいくつかのマクロを通して間接的に使われてるんだけど、 どれも呼び出し元で NULL が返ってくることが考慮されてない。 典型的なのは配列伸ばすのに p = SQ_REALLOC(p,oldsize,newsize) してるところ。 NULL 返したら元の領域がリークするうえに後続のコードでは確保成功したものとして 余裕でアクセスしてくる。 最初は、C++だからsqmem.cppの関数から例外投げろってことかと思ったんだけど、 呼び出し側で例外の発生も考慮されてないからまた別の理由でリークするし。
364 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 10:21:32 ] AngelScriptでマルチバイト文字列を使おうとする場合の不具合も報告したほうがよさそうなんだけどなぁ…
365 名前:353 mailto:sage [2009/10/30(金) 14:26:46 ] >>357 ありがとう!!
366 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 17:39:48 ] >>364 なんか不具合あるの? AngelScript試してみようと思ってるんで気になる UTF8扱いたいんだ
367 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 17:48:06 ] >>366 ライブラリをビルドする際にプリプロセッサでAS_DOUBLEBYTE_CHARSETを定義するんだけど、 それやるとビルドでエラーが出ちゃう。 しかもマルチバイト文字かシングルバイト文字かを判定するやり方もマズい。 最新版出るたびに毎回そこ修正してるよ。
368 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 19:04:19 ] それは本家に報告してあげればみんな幸せに
369 名前:デフォルトの名無しさん mailto:sage [2009/10/30(金) 23:19:35 ] >>367 ソース弄ってみるよ
370 名前:デフォルトの名無しさん [2009/10/31(土) 00:09:14 ] >>221 それ新しい版では修正されてたと思った。
371 名前:デフォルトの名無しさん mailto:sage [2009/10/31(土) 10:39:11 ] AngelScriptでUTF8を使う場合、ソースの修正なくても、 asIScriptEngine *lpEngine=asCreateScriptEngine(ANGELSCRIPT_VERSION); lpEngine->SetEngineProperty(asEP_SCRIPT_SCANNER, 1); みたいな感じでエンジンの設定すれば大丈夫だったと思う。
372 名前:デフォルトの名無しさん mailto:sage [2009/11/01(日) 23:04:23 ] あら、ありがと
373 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 06:54:37 ] AngelScript2.17.2で試してみた UTF8はデフォルトでサポートしてるっぽく読めたんでDLしたまんまビルド static const char* scriptString = "void hellow()" "{" " Print( \"hellow world\" );" " Print( \"UTF8テスト\" );" "}"; とりあえずこれOKだった ホストへstd::stringで渡せたり楽だわあ
374 名前:デフォルトの名無しさん mailto:sage [2009/11/02(月) 13:25:04 ] 次の更新でUTF16もサポートするみたいなことが書いてあるね
375 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 16:16:50 ] >>374 それできたらShitJIS対応の改造しなくて済むな。
376 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:58:55 ] Linuxでx64運用してるんだが、ファイルをHDD中でコピーするだけでファイルが壊れてしまう状態になって、 パーツを電源も含めて色々入れ換えてみたところ、 SATAケーブルをノイズに強いタイプに変更したら改善した。 残念ながら完全には直ってないようだけど、十分実用レベルには戻った。 資金に余裕ができたらHDD買い足してパーティションを作り直そう……。
377 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 10:59:54 ] おっと。スレ違いスマン。
378 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 09:41:07 ] pawnダウンロードして、マニュアル読みながらcmake使ってVC++用のプロジェクトファイル作るところまではできたんですが… プロジェクト開いても、なんかファイル構成がよくわからないです。 もしかしてこれ、コンパイラとVMが別のプロジェクトファイルになっているんでしょうか? luaみたいに、単純にヘッダファイルとlibファイルだけが欲しいんですが… もしかしてDLLしかない??
379 名前:デフォルトの名無しさん mailto:sage [2009/11/07(土) 16:02:52 ] >>378 pawnについていいなと思い試してみたはいいものの 詳しく使おうとするにつれてファイル構成が?で 投げ出した俺と同じ状態だね 確かにあれはわかりにくい
380 名前:デフォルトの名無しさん mailto:sage [2009/11/08(日) 02:12:15 ] >>371 asEP_SCRIPT_SCANNER の設定で何がどう変わるのか AngelScript 2.17.2 の ライブラリのソースを見てみたけど、単に 'あ' みたいなUTF-8の文字リテラルが 正しく読めるようになるだけっぽい。 "あいう" みたいな文字列リテラルは設定に関係なく1バイトずつ読んで処理してる。 ただし AS_DOUBLEBYTE_CHARSET プリプロセッサを有効にしてビルドしたライブラリで asEP_SCRIPT_SCANNER の設定が 0 だと、マルチバイト文字を考慮する。 >>367 が言っているように判定方法がマズいからShift_JISの半角カタカナを渡すと おかしな挙動になるだろうけど。 あと AngelScript 2.17.2 での asEP_SCRIPT_SCANNER の既定値は 1 っぽい。
381 名前:デフォルトの名無しさん mailto:sage [2009/11/09(月) 16:15:58 ] となると、マルチバイト判定用のコールバック関数を登録できるような改造した方がいいのかな。 2箇所いじれば大丈夫っぽいし。
382 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 04:57:26 ] >>381 Xtalはそんな感じのことをやってますね。 初期化関数に渡す Setting クラスインスタンスの ch_code_lib メンバに 文字コードクラス(例:SJISChCodeLib)のインスタンスを渡すことで好きな 文字コードを選択できるようになってます。 SJIS, EUC, UTF8, UTF16, UTF32 の文字コードクラスは標準で用意してある模様。
383 名前:382 mailto:sage [2009/11/10(火) 05:09:58 ] > SJIS, EUC, UTF8, UTF16, UTF32 の文字コードクラスは標準で用意してある模様。 …とはいっても別に内部で文字コード変換をしてくれるわけじゃないから、 Windowsのマルチバイト文字セットで使うなら基本的にSJISを選ぶことになるだろうけど。 Unicode文字セットで使うなら、XtalライブラリをUnicode文字セットでビルドして、 文字コードクラスは指定しない(=デフォのまま)ことで正しい挙動になりそう。 もちろんその場合のスクリプトはUnicodeで書く&渡す。 連投&AngelScriptと直接は関係ない話でゴメン。
384 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 09:30:35 ] 試してないけどソース見る限り、UTF-16用の文字コードクラス使うと、 文字列長取得時にサロゲートペアのことも考慮してるようだ 他の文字コード用のも、一文字進めるとか比較とかも変えられるようにはしているようではあるが、 今のところ文字単位での文字列長取得しか違いはないようだ
385 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 11:02:15 ] AngelScript、TCHARとかにも対応できて、Unicodeとマルチバイトのどっちでもビルドできるようにしたいが、 かなりの大部分を修正しないとダメだなぁ… Squirrelは最初から対応してるみたいだけど。
386 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:18:49 ] // .amxファイル(コンパイル済みPawnバイナリ)を実行するための最小コード。これをビルドするためには // ダウンロードしてきたPawnのソースに含まれている amx.c, amx.h, amxaux.c, amxaux.h, amxcons.c, amxcore.c をプロジェクトに追加しておく #include "amx.h" #include "amxaux.h" #include <stdio.h> extern "C" AMX_NATIVE_INFO console_Natives[]; extern "C" AMX_NATIVE_INFO core_Natives[]; int main(int argc, char *argv[]) { AMX amx; cell ret = 0; if (aux_LoadProgram(&amx, "test.amx", NULL) != AMX_ERR_NONE) exit(1); if (amx_Register(&amx, console_Natives, -1)) exit(1); if (amx_Register(&amx, core_Natives, -1)) exit(1); if (amx_Exec(&amx, &ret, AMX_EXEC_MAIN)) exit(1); printf("%ld\n", (long)ret); aux_FreeProgram(&amx); return 0; }
387 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:20:25 ] Pawnコンパイラのビルド方法 -- CMakeダウンロードする CMakeインストールする CMake起動する "Browse Source"をクリックし、実行環境をビルドするなら<pawn>\source\amxを指定する。Pawnコンパイラをビルドするなら<pawn>\source\compilerを指定する "Browse Build"をクリックし、適当な出力フォルダを指定する(以下、<out> と表現する) "Configure"をクリックし、VisualC++ネイティブを選択する。エラーが起きても、もう一度 ConfigureをクリックするとGenerateボタンが有効になる。 "Generate"をクリックしてファイルを生成する <out>にVC++用のプロジェクトファイルができている ソースに<pawn>\source\compilerを指定した場合、<out>にはpawnc.slnができている。それをVCで開いてビルドする。 ..\bin\pawn.icoが存在しませんとかエラーがでたら、該当場所に適当なアイコンファイルを入れておく。 <out>\Debugにpawnc.dllとpawncc.exeができている。それがコンパイラ。
388 名前:デフォルトの名無しさん mailto:age [2009/11/11(水) 23:56:32 ] Goのビルドが早いらしいので期待age
389 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 00:07:43 ] ttp://jp.techcrunch.com/archives/20091110google-go-language/
390 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 13:31:44 ] そのGoって組み込みじゃないんじゃ・・・・
391 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 17:18:47 ] ゴルーチン
392 名前:デフォルトの名無しさん mailto:sage [2009/11/12(木) 23:59:48 ] ttp://golang.org/doc/go_faq.html#Do_Go_programs_link_with_Cpp_programs There is a “foreign function interface” to allow safe calling of C-written libraries from Go code. We expect to use SWIG to extend this capability to C++ libraries. There is no safe way to call Go code from C or C++ yet. 組み込みまだ出来なさそう。あとは、luaみたいに使える方向性があるか分からない。 現在の対応はdarwinのx86/x86_64とlinuxのx86/x86_64/armとnative clientのような気がする
393 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 00:23:26 ] you ain't gonna need it
394 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 11:03:02 ] GCサポートとあるけどc++好きにはウケナイ気がする GC無しでc++的にガチガチに使えるなら使いたい c++は0xも控えてるしGoは微妙な位置に落ち着きそう
395 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 11:47:27 ] そういや0xって後50日くらいで終了するんだなぁ
396 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 12:51:11 ] C++0xはコンセプトを捨てて再調整中で、まだ時間がかかるようだ 最近はC++1xと呼ばれている・・・
397 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 12:52:17 ] っていうか検索しにくさでDに勝負挑んでんの? って感じのネーミングなんだが……。
398 名前:397 mailto:sage [2009/11/13(金) 13:00:17 ] あ、ごめんなさい誤爆。Dスレに投げたつもりだった……。
399 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 18:49:47 ] Squirrelの画像検索のしにくさよりはましだろ
400 名前:デフォルトの名無しさん mailto:sage [2009/11/13(金) 19:04:49 ] 16進数だと思って欲しいだって びょーん?さんのお知らせ
401 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 02:54:01 ] で、誰かPawnつかってみた? 激高速ぽいし、静的型付けで余計なバグも少なそうだし、かなり使えそうだけど…
402 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 21:13:23 ] >>388 GoはLinuxとMacにしか対応していません。