この単純なテストケースを動作させ、インターネットで手がかりを探すのに何時間も費やしました。EntryPointNotFoundException VB.netでC DLLをロードする
私はVB.netプロジェクトとVC++ DLLプロジェクトを含むVS 10ソリューションを持っています。
json_main.cpp:
#include <Windows.h>
extern "C"
{
void testMethod(int* inVal)
{
*inVal += 5;
}
}
JSON.def:
LIBRARY JSON
DESCRIPTION 'Simple JSON encoder/decoder'
EXPORTS
testMethod
そして、私のVB.netコード:
<DllImport("C:/inetpub/wwwroot/facebook/AlumniFinder/Debug/JSON.dll", CallingConvention:=CallingConvention.Cdecl)> _
Private Shared Sub testMethod(ByRef inVal As Integer)
End Sub
...
Dim var As Integer = 7
testMethod(var)
oLabel.Text = var.ToString
私は私のDLLプロジェクトで
しかし、私が走ろうとすると、私はEntryPointNotFoundException
。
私がここで間違っているかもしれないことは誰でも知っていますか? DLLにdumpbin.exeを使用しようとしましたが、使用しているマングリング方式を判断するための関数名がありません。
私はちょうどDLLとしてプロジェクトをビルドしました。私は.defファイルの使い方について何も言及していないチュートリアルを読んで、VSがその拡張子を解釈してそれに応じてそれを使用すると仮定しました。 –
'dumpbin/exports JSON dll'私はエクスポートを示す何も表示されません、あなたが私が正しくないと信じるように導く.defファイルが使用されていることを確認する必要があります。どうすればいいですか? –
素晴らしいそれは本当にありがとう! –