以前に、VC++でDLLを作る方法を調べたが、どうやらその方法で作成したDLLは、VBでDeclare
を使用してコールすることができないらしい。
週刊Bravo!! > Programing Tips > Visual C++ > DLLの情報をもとに、私が理解した範囲では、
- 関数は
WINAPI
で修飾する必要がある(__stdcall
呼出規約である必要がある) __stdcall
関数は、__declspec(dllexport)
でエクスポートすると、名前が_funcname@nのように修飾されてしまう(呼び出しは可能)- エクスポートはDEFファイルで行うと、関数名が修飾されない
というかんじ。
コメント
ちなみに、複数__declspec(dllexport)で修飾した関数があり、
そのうちの一部のみDEFファイルに記述すると、
DEFファイルに記述しなかった関数のみ、_funcname@n の形式になる。
(Dependency Walker などで関数名を調べれば、VBから呼ぶことは可能。)