• ベストアンサー

Dllで2つ以上の値を返すとき

Dllを作って出た結果の2つ以上値を返したいのですが Dllの方をどのような形でreturn後に書いたらいいのでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

returnでは値が1つしか返せません。 かといって、構造体とか(へのポインタ)とか DLLで確保したものを渡すのはあまり良くないと思います。 呼び出す側で確保した変数(オブジェクト)を、 ポインタや参照でDLL側に渡して、 DLL側でそこに値を格納するのがいいかと思います。

gotyan
質問者

お礼

有り難うございます。 やはりポインタが一番いいんですか ポインタは使っていても今一歩理解しにくいので もう一度勉強しなおしてみます。

その他の回答 (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;

gotyan
質問者

お礼

有り難うございます。 >小さな数値の場合1つの変数に複数の値を書き込む。 が 一番簡単に出来そうですが 他のも勉強してみたいので調べてみます。

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

引数をポインタで渡せばよいのでは?

参考URL:
http://mermaid-tavern.com/workshop/c/c1_19.html
gotyan
質問者

お礼

有り難うございます。 ポインタも調べてみます。

回答No.1

こんにちは。 うーん、よくわかりませんが、 引数でREFを使えば済みそうな・・・? ぜんぜん違ってたらすみません・・・。 (^^ゞ

gotyan
質問者

お礼

有り難うございます。 REFって(^^; ちょっと調べてみます。

関連するQ&A

専門家に質問してみよう