【发布时间】:2010-07-10 22:08:59
【问题描述】:
好的,这是我今天的怪癖。
我为无法访问源代码的现有 C++ 程序创建扩展。
我编写标准 C/C++ dll 并使用 IJW 调用 C# dll。我有一段时间没有这样做了,但现在我正试图让一个在 Window 7 上工作。我收到一个错误(错误 0000036B1 - 不确定这是应用程序的内部错误号,还是 Windows 错误。
我有多个虚拟电脑(XP 和 Windows 7) dll 在 XP 上运行良好。如果安装了 Visual Studio 2008,它也适用于 Windows 7。但不是在仅安装了 Microsoft Visual C++ 2008 SP1 Redistributable Package 的干净 Windows 7 上。
只要编译器开关设置为 MT[d],我就可以在干净的 Windows 7 机器上编译和运行直接 C++ dll,但如果我设置 /clr 开关,我必须将其更改为 MD[d],然后它在干净的 Windows 7 盒子上失败了。但是,不是在安装了 Visual Studio 2008 的 Windows 7 机器上。
关于我需要在干净的盒子上安装什么有什么想法吗? (当然除了 VS ;-))
感谢您的帮助。
L.李·桑德斯
【问题讨论】:
-
附加信息:最小工作示例 dll(无 clr 代码)可与 MT[d] 开关一起使用,但如果我切换到 /clr(仍然没有实际 clr 代码)和 MD[d],则dll 无法加载到程序中并出现上述错误。但它仍然可以在干净的 XP 机器和安装了 VS2008 的 Win7 机器上继续运行。
标签: windows-7 c++-cli visual-studio-2008-sp1