長時間の読者、初めてのポスター。だから、との種類の似てC#で消費された外部の.dllリソースにエントリポイントを正しく作成する方法
私はここで質問に答えることを願って一日...:"Unable to find an entry point named [function] in dll" (c++ to c# type conversion)
しかし、私は同じソリューションを適用するように見えることはできません...基本的に
、I C++プロジェクトのソースファイルに定義され
extern "C" {
__declspec(dllexport) bool IsDataValid();
}
:としてC++プロジェクトのヘッダファイルに定義され
:(符号新しいメソッドを書いiatureのみ)
extern bool __cdecl IsDataValid() {
//function stuf......... returns a bool
}
としてC#プロジェクト内のフォームのC#アプリケーションにインポート:
bool isDataValid = IsDataValid();
:それは次のようにC#のフォームは.csファイル内の同じ場所から呼び出され
[DllImport("CarChipSDK_C_Sharp.dll", EntryPoint = "IsDataValid")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool IsDataValid();
メッセージの例外を返します。
"エントリポイント を見つけられませんでした。 '' CarChipSDK_C_Sharp.dll 'という名前のIsDataValid()が見つかりました。
Iは、C++コードから生成された.dllにDUMPBIN.EXEと依存関係ウォーカーを使用していると、それはIsDataValid()エントリポイントを有することを示しています。
すべてのヘルプははるかに高く評価されています...
問題は解決します!愚かな私、これは私の現在の会社の以前の協同のコードだった、彼はbin/releaseフォルダから.dllを読んでいたことが判明した。知っていたはずです。私の心からの謝罪。
答えてくれてありがとう、私は仕事をやめたので、月曜日にこれを試してみましょう。期待しているようだ!本当にありがとう。 –
依存関係ウォーカーは、GUIを好む人のために、すばらしい表形式でdumpbinと同じ情報を表示します。 –
@mcbobo:問題ありません。私はシステムで働いているときにinteropをたくさん使っていますし、ドライバインターフェイスなどのGUIを常時構築しなければなりません。 –