< ワークロード・ガバナ | ハンガリー記法 >

March 9, 2004

VBからコール可能なDLLの作成

以前に、VC++でDLLを作る方法を調べたが、どうやらその方法で作成したDLLは、VBでDeclareを使用してコールすることができないらしい。
週刊Bravo!! > Programing Tips > Visual C++ > DLLの情報をもとに、私が理解した範囲では、

  • 関数はWINAPIで修飾する必要がある(__stdcall呼出規約である必要がある)
  • __stdcall関数は、__declspec(dllexport)でエクスポートすると、名前が_funcname@nのように修飾されてしまう(呼び出しは可能)
  • エクスポートはDEFファイルで行うと、関数名が修飾されない

というかんじ。

トラックバック

このエントリーにトラックバック:
http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/246

コメント

ちなみに、複数__declspec(dllexport)で修飾した関数があり、
そのうちの一部のみDEFファイルに記述すると、
DEFファイルに記述しなかった関数のみ、_funcname@n の形式になる。
(Dependency Walker などで関数名を調べれば、VBから呼ぶことは可能。)

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?