• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Borland社のコンパイラを使ったDLL)

Borland社のコンパイラを使ったDLL

このQ&Aのポイント
  • C++BuilderでDLLファイルを使っておりますが、Vectorコンテナの値をコールバック出来ませんでした。Vectorコンテナを使ったコールバックを可能とする記述方法を教えてください。
  • Edit1には、思惑通りに102が返ります。Edit2には、1が、Edit3には2が返ります。この例では、201、202を返したいのです。
  • 本体側のコンパイラとdll側のコンパイラでコンテナの受け渡しに問題がある可能性もあります。確認してみてください。

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

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

メインでの宣言 int test(int *a,vector<int> &b); 使用部分 int a; vector<int> b; test(&a,b); DLL部分での宣言 int test(int *a,vector<int> &b); で受け渡しの部分は上記で良いと思います。 ------------------ for(unsigned int i;i<b.size();i++){ で i=0してないのが1つの原因かと思います。

teo98
質問者

お礼

>i=0してないのが1つの原因かと思います。 いろいろ試行錯誤していたのですが、いただいたアドバイスにしたがって解決できました。有難う御座います。

その他の回答 (1)

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

int __stdcall test(int*,vector<int>); int __stdcall test(int*,vector<int>*); int __stdcall test(int *a,vector<int> &b) もおかしいんじゃ? とりあえず、DLLにする前に、 objで出力してみて それでリンクしてウマくいくかテストしてから DLLでためしてみると良いのでは

teo98
質問者

補足

そうなんです。いろいろ変えて試しているのですが、実際のところ、vectorの渡し方が分からないのです。

関連するQ&A