首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DllImport不工作

DllImport不工作
EN

Stack Overflow用户
提问于 2012-08-03 16:20:01
回答 2查看 4K关注 0票数 2

我正在尝试编写一个使用C++中定义的函数的WPF应用程序。C++应用程序被编译为动态链接库。

我正在做的是使用DllImport属性来导入函数并使用它。这在我的机器上工作得很好,但是当我试图在另一台机器上运行我的WPF应用程序时,它给出了一个“找不到DLL”的错误。

我的C# (WPF)代码摘录:

代码语言:javascript
复制
[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++代码:

代码语言:javascript
复制
extern "C" __declspec(dllexport) int MyFunc() {
  return 3;
}

有人能看到我的错误在哪里吗?

提前感谢您的帮助!

编辑:问题似乎是依赖项"MSVCR100D“不存在。我的理解是,这是我安装的VC++可再发行软件包中的一个文件,但没有用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-03 16:25:25

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

典型的缺失依赖项是Visual Studio C/C++运行时库。如果他们失踪了,就在谷歌上搜索吧。微软为他们提供了可再发行的软件包。

票数 6
EN

Stack Overflow用户

发布于 2012-08-03 16:24:48

dll是否也在另一台机器上注册?尝试将dll文件的Build ACtion设置为Content,将Copy to Output folder设置为always

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11791944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档