VCで作成したDLLについて


きっと  2004-08-03 07:56:03  No: 84909

VCで作成されたDLLをVBより参照しようとしましたが、
関数の宣言が「__cdecl 」で行われている為、
参照出来ないでいます。
関数の宣言を「__stdcall 」に変更せず、
使用する方法は、あるでしょうか?

また、「__stdcall 」にした場合、.defファイルを用意しないと
参照出来ないのでしょうか?


魔界の仮面弁士  2004-08-03 08:11:38  No: 84910

基本的には、StdCall 規約でなければ呼び出せませんが(VB.NETは除く)、
関数側の引数の仕様によっては、On Error Resume Next を使って
エラーを無視して呼び出すようにすれば、VBの開発環境からでも
そのまま実行できる場合もあります。

> 関数の宣言を「__stdcall 」に変更せず、
> 使用する方法は、あるでしょうか?
そのDLLを呼び出すための、__stdcallな中継用DLLを作成するとか…(汗


魔界の仮面弁士  2004-08-03 08:26:41  No: 84911

> また、「__stdcall 」にした場合、.defファイルを用意しないと
> 参照出来ないのでしょうか?
参照できますが、関数名に引数のサイズ等が付加され、たとえば
   MyProc32@4
などという名前でエクスポートされるため、Declare時にAliasが必要になります。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加