CWindows 7上的C ++ / CLI DLL问题没有安装VS2008
-
13-09-2020 - |
题
我为现有的C ++程序创建扩展,我无法访问源代码。
i写标准c / c ++ dll,我使用ijw调用c#dll。我没有在一段时间内完成这一点,但现在我试图在窗口7上工作7。我收到错误(错误0000036B1 - 不确定是应用程序的内部错误号,还是Windows错误。< / p>
我有多个虚拟PC(XP和Windows 7)DLL在XP上工作。如果安装Visual Studio 2008,它也适用于Windows 7。但不在清洁的Windows 7上安装了Microsoft Visual C ++ 2008 SP1可再分发包。
我可以在清洁的Windows 7盒上编译并运行直C ++ DLL,只要编译器开关设置为MT [D],但如果我设置/ CLR开关,则必须将其更改为MD [D]然后它在清洁的Windows 7框上失败。但是,没有安装Visual Studio 2008的Windows 7框。
关于我需要在干净的盒子上安装的想法? (除了课程的vs之外;-))
谢谢你的帮助。
l。李桑德斯
解决方案
好的这很糟糕。有人指出,我需要的文件是调试版本,这意味着我在调试模式下编译了我的DLL。他建议我尝试发布模式。
所以,使用我的虚拟PC的新副本运行Windows 7 Basic(安装了3.5个C ++ Redist)我复制了我的原始DLL(调试模式中的一个)只是为了验证这个虚拟PC是否有问题。是的。
然后我复制超过在释放模式下编译的DLL。有效。
好的,我正式想要砸到墙上。
谢谢你的时间。
l。李桑德斯
其他提示
您将需要VC ++运行时重新发行(它具有用于本机C ++的支持代码)和.NET Framework 3.5(具有C ++ / CLI的支持代码)。
.NET 3.5应该配备Win7,但VS2008 SP1附带.NET 3.5 SP1,因此我建议您从Windows更新安装所有.NET更新。
现在我觉得很糟糕。它并不完全是Windows 7的干净安装7.我需要安装我正在编写扩展的应用程序。该程序的最新修补程序安装了Visual C ++ 2008 SP1可再分发包装。
嗯,我决定尝试创建一个小bitty c ++ / cli dll的安装项目,并告诉它包括依赖。它拉入2个文件:
c:\ program files \ common files \ merge modules \ microsoft_vc90_debugcrt_x86.msm C:\ Program Files \ Common Files \ Merge Modules \ policy_9_0_microsoft_vc90_debugcrt_x86.msm
我运行了安装和tiny应用程序。我手动复制了我的DLL和Lo,看看他们现在的工作。所以要将它工作我需要这两个文件。
为什么?为什么他们不包括在Redist包中?