dポイントプレゼントキャンペーン実施中!

すいませんが、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 (ここをどのように?);

}

A 回答 (3件)

>return (ここをどのように?);


return &kouzou1;(ただしkouzou1はグローバルかstatic)

普通はExe側が確保したメモリのポインタを
dllに渡し、そのポインタに構造体の内容をコピー
する。
test( KOUZOU* Out );

memcpy ( Out , &kouzou1 , sizeof(KOUZOU) );
    • good
    • 0
この回答へのお礼

有り難うございます
(ここをどのように?) CALLBACK test()

CALLBACK の前はどのようにしたらいいでしょうか?

やってみたのですが *_w64からintには変換できませんと出ます。

申し訳ないですm(__)m

お礼日時:2004/11/19 21:10

>(ここをどのように?) CALLBACK test()


KOUZOU* CALLBACK test()
    • good
    • 0
この回答へのお礼

有り難うございました 助かります。

お礼日時:2004/11/22 02:34

ポインタ使用の方が一般的な気がします。



例えば、
呼び出し側
 KOUZOU kouzou;
 test(&kouzou);

DLL側
 void test(KOUZOU *kouzou)
 {
  kouzou->a = 1;
  kouzou->b = 2;
  return;
 }
    • good
    • 0
この回答へのお礼

有り難うございます。
一度 ポインタでもやってみます。
現在勉強中ですのでいろいろやってみます。

お礼日時:2004/11/19 21:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!