Delphiで作成したDLLをVCで使用するには

解決


K  2006-04-10 14:30:30  No: 20967  IP: 192.*.*.*

Delphiで作成したDLLをVCで使用したんですけど、DLLの関数を呼び終わった時点でメモリエラーが出るときがあります。
調べてみると、引数がある関数を呼び出したときは必ずエラーが起き、
引数がない関数を呼び出すだけのときは特に問題は起こりません。

Delphiで作成したDLLを他の言語で使用する場合には、何かしなくてはならないことがあるんでしょか?

宜しくお願いします。

編集 削除
どやさ  2006-04-10 15:46:11  No: 20968  IP: 192.*.*.*

>Delphiで作成したDLLを他の言語で使用する場合には、
>何かしなくてはならないことがあるんでしょか?
ない!
通常は、共通で使えるようにDLLを作成するから・・・

この質問の内容だけで的確な回答はできません。
ってことで、間単に書くと
Exporr、静的、動的呼出し、Standard、AnsiString等など
原因としておおよその見当はつきますが・・・
考えられる原因すべてをのべてそれぞれについて回答するには
A4レポート100枚以上はいるわい!

少なくとも途中の大きな処理は省いて
呼び出し、受け側のコードぐらいは記述したら?

編集 削除
倒壊  2006-04-10 16:07:58  No: 20969  IP: 192.*.*.*

引数や戻り値で使用する型の定義が、Delphi と VC とでは異なるようです。
Integer型については互換性があるようですが、String型は全くダメのようです。
回答になっていませんが、ご参考まで。

編集 削除
dll  2006-04-11 01:43:21  No: 20970  IP: 192.*.*.*

引数がある時とない時で挙動が違うんだから「呼び出し規約」じゃないの?
stdcallとかcdeclとかがアプリとDLLで一致してないんでしょ・・・

編集 削除
K  2006-04-12 21:28:20  No: 20971  IP: 192.*.*.*

どやささん、倒壊さん、dllさんありがとうございます。
返事が遅くなってしまい、申し訳ありません。

dllさんの仰るとおり、stdcallの付け忘れでした。
ご指導ありがとうございました。

編集 削除
K  2006-04-12 22:44:31  No: 20972  IP: 192.*.*.*

解決済みにするのを忘れてました。
重ね重ね申し訳ありません。

編集 削除