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++ Redistributable 包中的一个文件,但无济于事。

4

2 回答 2

6

您的 DLL 可能依赖于其他计算机上未安装的其他 DLL。您可以使用Dependency Walker检查依赖项。

典型的缺失依赖项是 Visual Studio C/C++ 运行时库。如果他们不见了,只需用谷歌搜索即可。Microsoft 为他们提供了可再发行包。

于 2012-08-03T08:25:24.913 回答
0

dll是否也在另一台机器上注册?尝试将 Build ACtion 设置为 Content 并将 Copy to Output 文件夹设置为始终用于 dll 文件

于 2012-08-03T08:24:47.883 回答