Windows 7 c++/未安装vs2008的Windows 7上的cli dll问题

Windows 7 c++/未安装vs2008的Windows 7上的cli dll问题,windows-7,c++-cli,visual-studio-2008-sp1,Windows 7,C++ Cli,Visual Studio 2008 Sp1,好的,这是我今天的奇怪之处。 我创建一个扩展到一个现有的C++程序,我没有访问源代码。p> 我编写标准的C/C++DLL,并使用IJW调用C#DLL。我已经有一段时间没有这样做了,但现在我正试图让一个在Windows7上工作。我收到一个错误(错误0000036B1-不确定这是应用程序的内部错误号还是windows错误 我有多个虚拟PC(XP和Windows 7)。DLL在XP上运行良好。如果安装VisualStudio 2008,它也可以在Windows 7上工作。但是,在安装了微软Visual

好的,这是我今天的奇怪之处。
我创建一个扩展到一个现有的C++程序,我没有访问源代码。p> 我编写标准的C/C++DLL,并使用IJW调用C#DLL。我已经有一段时间没有这样做了,但现在我正试图让一个在Windows7上工作。我收到一个错误(错误0000036B1-不确定这是应用程序的内部错误号还是windows错误

我有多个虚拟PC(XP和Windows 7)。DLL在XP上运行良好。如果安装VisualStudio 2008,它也可以在Windows 7上工作。但是,在安装了微软Visual C++ 2008 SP1可重分发程序包的干净窗口7上不工作。

我可以在清理Windows 7框上编译和运行直的C++ DLL,只要编译器开关设置为Mt[d],但是如果我设置了/CLR开关,我必须将它更改为MD [D],然后它在干净的Windows 7框上失败。但是,不安装在VisualStudio 2008安装的Windows 7框上。 关于我需要在干净的盒子上安装什么有什么想法吗?(当然不是VS;-)

谢谢你的帮助


L.Lee Saunders

您将需要VC++运行时可再发行版(支持本机C++代码)和.NET Framework 3.5(支持C++/CLI代码)


.NET 3.5应该随Win7提供,但VS2008 SP1随.NET 3.5 SP1提供,因此我建议安装Windows Update中的所有.NET更新。

现在我感觉很糟糕。这不是一个完全干净的Windows7安装。我需要安装我正在编写扩展的应用程序。该程序的最新补丁安装了VisualC++ 2008 SP1可重分发包。p> 好吧,我决定尝试创建一个带有少量C++/cli dll的安装项目,并告诉它包含依赖项。它拉入了2个文件:

c:\program files\common files\merge Module\microsoft_vc90_debugcrt_x86.msm C:\Program Files\Common Files\Merge Module\policy\u 9\u 0\u Microsoft\u VC90\u DebugCRT\u x86.msm

我运行了安装程序,这个小应用程序运行正常。我手动复制了我的DLL,瞧,它们现在工作起来了。所以为了让它工作,我需要这两个文件


为什么??为什么它们没有包含在Redist包中?

好的,这很糟糕。有人指出我需要的文件是调试版本,这意味着我已经在调试模式下编译了我的dll。他建议我尝试释放模式

<> P>这样,我的虚拟机运行Windows 7 Basic(安装了3.5 C++ + DISDT)的新副本,我复制了我原来的DLL(调试模式中的一个),只是为了验证这个虚拟PC有问题。是的

然后我复制了一个在发布模式下编译的dll。成功了

好吧,我正式想把头撞在墙上

谢谢你抽出时间


L.Lee Saunders

附加信息:最小工作示例dll(无clr代码)与MT[d]开关一起工作,但如果我切换到/clr(仍无实际clr代码)和MD[d],则dll无法加载到程序中,并出现上述错误。然而,它仍然在一个干净的XP机器和安装了VS2008的Win7机器上运行。