AutoHotkey スレッド part7

このエントリーをはてなブックマークに追加
204名無しさん@お腹いっぱい。
時間がものすごくかかる演算をDLLで組もうと思うんだけど
参考になるサイトとかないかな
中身は単純にfor文とかを大量に繰り返して結果を返す、といったものなんだけど
ためしに
extern "C" __declspec(dllexport) INT WINAPI extracter(int x){
return 5*x;
}
こんな感じのDLL組んでDLLCALLで呼び出してみたけど上手く動作しなかったんだ…
205名無しさん@お腹いっぱい。:2009/02/04(水) 18:27:03 ID:k5e6IctL0
>>204
時間掛かる処理をさせるならLoadLibraryしてみたほうがいいよ
206名無しさん@お腹いっぱい。:2009/02/04(水) 21:27:31 ID:Ut7+efCd0
>204
多分呼び出し規約が stdcall になってるので関数名を extracter@4 にすれば呼び出せるかも。
207206:2009/02/04(水) 21:38:23 ID:Ut7+efCd0
補足。
dll 側のコードはそのままで、DllCall するときに extracter@4 で呼ぶって意味ね。VC だと _extracter@4 かも。
@以降の数字は引数に使用するスタックのサイズ。今回は int が 1 つなので 4。
gcc だと -Wl,-kill-at というオプションを渡すと @ 以降がなくなって extracter で呼べるようになるはず。
VC 側の同等オプションは知らね。DEF ファイル使えば制御はできると思う。
208名無しさん@お腹いっぱい。:2009/02/04(水) 23:14:11 ID:MFTbk+bR0
>>206-207


問題解決しますたありがと><