- ベストアンサー
Dllで2つ以上の値を返すとき
Dllを作って出た結果の2つ以上値を返したいのですが Dllの方をどのような形でreturn後に書いたらいいのでしょうか? よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
returnでは値が1つしか返せません。 かといって、構造体とか(へのポインタ)とか DLLで確保したものを渡すのはあまり良くないと思います。 呼び出す側で確保した変数(オブジェクト)を、 ポインタや参照でDLL側に渡して、 DLL側でそこに値を格納するのがいいかと思います。
その他の回答 (3)
- ryuta_mo
- ベストアンサー率30% (109/354)
回答No.4
構造体を使う。 引数にポインタを渡す。 小さな数値の場合1つの変数に複数の値を書き込む。 a=100; b=200; return a+(b*1000) ret=func(); a=ret%1000; b=ret/1000;
質問者
お礼
有り難うございます。 >小さな数値の場合1つの変数に複数の値を書き込む。 が 一番簡単に出来そうですが 他のも勉強してみたいので調べてみます。
- sha-girl
- ベストアンサー率52% (430/816)
回答No.2
引数をポインタで渡せばよいのでは?
質問者
お礼
有り難うございます。 ポインタも調べてみます。
- taka451213
- ベストアンサー率47% (436/922)
回答No.1
こんにちは。 うーん、よくわかりませんが、 引数でREFを使えば済みそうな・・・? ぜんぜん違ってたらすみません・・・。 (^^ゞ
質問者
お礼
有り難うございます。 REFって(^^; ちょっと調べてみます。
お礼
有り難うございます。 やはりポインタが一番いいんですか ポインタは使っていても今一歩理解しにくいので もう一度勉強しなおしてみます。