- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Borland社のコンパイラを使ったDLL)
Borland社のコンパイラを使ったDLL
このQ&Aのポイント
- C++BuilderでDLLファイルを使っておりますが、Vectorコンテナの値をコールバック出来ませんでした。Vectorコンテナを使ったコールバックを可能とする記述方法を教えてください。
- Edit1には、思惑通りに102が返ります。Edit2には、1が、Edit3には2が返ります。この例では、201、202を返したいのです。
- 本体側のコンパイラとdll側のコンパイラでコンテナの受け渡しに問題がある可能性もあります。確認してみてください。
- みんなの回答 (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つの原因かと思います。
その他の回答 (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でためしてみると良いのでは
質問者
補足
そうなんです。いろいろ変えて試しているのですが、実際のところ、vectorの渡し方が分からないのです。
お礼
>i=0してないのが1つの原因かと思います。 いろいろ試行錯誤していたのですが、いただいたアドバイスにしたがって解決できました。有難う御座います。