我正在尝试编写一个使用C++中定义的函数的WPF应用程序。C++应用程序被编译为动态链接库。
我正在做的是使用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++可再发行软件包中的一个文件,但没有用。
发布于 2012-08-03 16:25:25
您的DLL可能依赖于其他计算机上未安装的其他DLL。您可以使用Dependency Walker检查依赖项。
典型的缺失依赖项是Visual Studio C/C++运行时库。如果他们失踪了,就在谷歌上搜索吧。微软为他们提供了可再发行的软件包。
发布于 2012-08-03 16:24:48
dll是否也在另一台机器上注册?尝试将dll文件的Build ACtion设置为Content,将Copy to Output folder设置为always
https://stackoverflow.com/questions/11791944
复制相似问题