2

C++ で定義された関数を使用する WPF アプリケーションを作成しようとしています。C++ アプリケーションは DLL としてコンパイルされます。

私がやっていることは、関数をインポートして使用するために DllImport 属性を使用することです。これは私のマシンでは問題なく動作しますが、別のマシンで WPF アプリケーションを実行しようとすると、「DLL が見つかりません」というエラーが表示されます。

私の C# (WPF) コードの抜粋:

[DllImport("Dll.dll")]
public static extern int MyFunc();

public MainWindow()
{
  InitializeComponent();
  MessageBox.Show("Starting");
  try
  {
    MessageBox.Show(MyFunc().ToString());
  }
  catch (Exception exc)
  {
    while (exc != null)
    {
      MessageBox.Show(exc.Message);
      exc = exc.InnerException;
    }
}

私のC++コード:

extern "C" __declspec(dllexport) int MyFunc() {
  return 3;
}

私のエラーがどこにあるのか誰にもわかりますか?

よろしくお願いします。

編集:依存関係「MSVCR100D」が存在しないことが問題のようです。私の理解では、これは私がインストールした VC++ 再頒布可能パッケージのファイルであり、役に立たなかったということです。

4

2 に答える 2

0

DLLは他のマシンにも登録されていますか? Build ACtion を Content に、Copy to Output フォルダーを常に dll ファイルに設定してみてください。

于 2012-08-03T08:24:47.883 に答える