- ベストアンサー
DLLからEXEに構造体を渡すとき
すいませんが、DLLからEXEに構造体を渡すときに どのようにしたらいいのでしょうか? 調べてみても EXE→DLLには載っているのですが、 DLL→EXEには調べ方が悪いのかわかりませんでした。 よろしくお願いいたします。 typedef struct _KOUZOU { int a; int b; } KOUZOU; (ここをどのように?) CALLBACK test() { KOUZOU kouzou1; kouzou1.a=1; kouzou1.b=2; return (ここをどのように?); }
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>return (ここをどのように?); return &kouzou1;(ただしkouzou1はグローバルかstatic) 普通はExe側が確保したメモリのポインタを dllに渡し、そのポインタに構造体の内容をコピー する。 test( KOUZOU* Out ); memcpy ( Out , &kouzou1 , sizeof(KOUZOU) );
その他の回答 (2)
- sha-girl
- ベストアンサー率52% (430/816)
>(ここをどのように?) CALLBACK test() KOUZOU* CALLBACK test()
お礼
有り難うございました 助かります。
- GOGOV
- ベストアンサー率54% (12/22)
ポインタ使用の方が一般的な気がします。 例えば、 呼び出し側 KOUZOU kouzou; test(&kouzou); DLL側 void test(KOUZOU *kouzou) { kouzou->a = 1; kouzou->b = 2; return; }
お礼
有り難うございます。 一度 ポインタでもやってみます。 現在勉強中ですのでいろいろやってみます。
お礼
有り難うございます (ここをどのように?) CALLBACK test() CALLBACK の前はどのようにしたらいいでしょうか? やってみたのですが *_w64からintには変換できませんと出ます。 申し訳ないですm(__)m