test
という1つの関数でQtにDLLを作成しました。私は別のQtプロジェクトを作成しましたが、問題なくDLLを使用することができました。私は今、このDLLをC#アプリケーションで使いたいと思っていますが、関数を呼び出す際に問題があります。私はC#exeと同じフォルダにDLLを置いた。私は私のDLLIMPORTにEntryPoint = test
を追加しようとしたが、それでもQtで作成したDLLをC#アプリケーションにインポートするには
私が間違って何をやっている同じ例外を受け取る EntryPointNotFoundException
:私は、私は次の例外を受け取るので
[DllImport("TestDll.dll", CharSet = CharSet.Ansi, SetLastError = true)]
private static extern bool test();
のような機能をインポートしますか?
テストメソッドをDLLからエクスポートしてもよろしいですか? Dependency Walkerをダウンロードして、エクスポートにリストされているかどうかを確認します。 http://www.dependencywalker.com/ – shf301
テキストがなく、SetLastError = trueが間違っているので、これはwin apisのためのものです。ほとんどの場合、DLLには名前が変更されている可能性があります。マングリングを避けるために.defファイルでエクスポートしてください。 extern "C"を必ず使用してください。また、一致する呼び出し規約を取得します。 C++コードはcdeclを使用しますが、C#のデフォルトはstdcallです。 –
Qtの静的ビルドがインストールされていないという事実を持っているかもしれないという気持ちがあります。 – poco