トップ回答者
作成したDllをVBから参照できない

質問
-
VBからC++で作成したDllを使用したいと思い簡単なテストをしてみましたがうまくいきません。
1 VS2010VC++でMFC Dllを選択して”TestDll”テンプレートプロジェクを作成
2 ”TestDll.cpp”のTODOテキストからコメントをはずして”ExportedFunction”関数を作成(下記)
extern "C" BOOL PASCAL EXPORT ExportedFunction()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// 通常関数の本体はこの位置にあります
return true;
}3 ”TestDll.def”に"ExportedFunction"を追加(下記)
LIBRARY
EXPORTS
; 明示的なエクスポートはここへ記述できます
ExportedFunction4 リリースコンパイルで"D:\MyTest\TestDll.dll"を作成
5 VS2010 VBプロジェクトから”D:\MyTest\TestDll.dll"を参照リストから指定
6 すると
「'D:\MyTest\TestDll.dll'への参照を追加できませんでした。ファイルがアクセス可能で、有効なアセンブリまたはCOMコンポーネントであることを確認してください。」
上記のメッセージが表示されます。
どのような手順で”ExportedFunction”をVBから使えるようになるのでしょうか?。
回答
-
native dllでCOMではない(typelibがない)ため、参照で追加するのではなくP/Invokeでdllを呼んでみてください。
[Using Platform Invoke]
http://www.codeproject.com/KB/dotnet/PInvoke.aspx[Marshaling between Managed and Unmanaged Code]
http://msdn.microsoft.com/en-us/magazine/cc164193.aspx
すべての返信
-
native dllでCOMではない(typelibがない)ため、参照で追加するのではなくP/Invokeでdllを呼んでみてください。
[Using Platform Invoke]
http://www.codeproject.com/KB/dotnet/PInvoke.aspx[Marshaling between Managed and Unmanaged Code]
http://msdn.microsoft.com/en-us/magazine/cc164193.aspx