我使用 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/