DllImport不工作

时间:2012-08-03 08:20:01

标签: c# .net dllimport

我正在尝试编写一个使用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包中的一个文件无济于事。

2 个答案:

答案 0 :(得分:5)

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

典型的缺少依赖项是Visual Studio C / C ++运行时库。如果他们失踪了,只需谷歌吧。 Microsoft为他们提供可再发行的软件包。

答案 1 :(得分:0)

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