c++ - 使用VC++创建跨机DLL

标签 c++ visual-studio-2008 visual-c++ dll win32com

我使用 VC++ 2008 创建了一个 DLL 文件,设置如下:

  • 配置类型:动态库(.dll)
  • MFC 的使用:使用标准 Windows 库
  • 使用 ATL:不使用 ATL
  • 公共(public)语言运行时支持:公共(public)语言运行时支持 (/clr)

创建的 DLL 在我的机器(创建它的机器)上运行良好,但不能在另一台机器上使用(我用 3 台机器测试过)。有关详细信息,我通过 JNI(Java native 接口(interface))加载此 DLL 文件。在我的机器上它工作,但在其他机器上它显示错误“java.lang.UnsatisfiedLinkError::应用程序无法启动,因为它的并排配置不正确......”

我的问题是: 1. 创建不能在多环境下工作的 DLL 时,我是否遗漏了任何配置? 2. 我们可以创建一个可以在不同机器上运行的 DLL 文件吗?

非常感谢!

最佳答案

您需要确保其他计算机上已安装 VC++ 2008 Redistributables。要仔细检查这是不是问题所在,请在另一台机器上运行 Dependency Walker,它会告诉您它在寻找什么: http://www.dependencywalker.com/

您可以在微软网站上找到 VC 2008 redist EXE: http://www.microsoft.com/en-us/download/details.aspx?id=29

或者实际的 DLL 在 VC 2008 安装文件夹的 redist 文件夹中。

关于c++ - 使用VC++创建跨机DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10911093/

相关文章:

C++ 类 - 点符号与指针

c++ - BitBlt 忽略 CAPTUREBLT 并且似乎总是捕获目标的缓存拷贝

c++ - 是否可以在 Qt 中制作具有不同页面大小的 pdf?

C++ 项目类型 : unicode vs multi-byte; pros and cons

c++ - 通过 OLE 自动化从 C++ 应用程序运行存储在 Excel 工作簿中的指定宏

.net - NUnit 不会释放自定义类库 dll 上的锁...运行 NUnit 后无法编译类库

visual-studio-2008 - 如何更新Visual Studio模板缓存

asp.net - VS2008 和 VS2010 Express 中缺少附加到进程

c++ - 从应用程序特定文件夹加载自定义字体文件

c++ - OpenCV 将列添加到矩阵