Msvcrt 在Vista(SP2)64位上:为什么我的C/C++;运行时(CRT)程序集缓存对我的应用程序不可见?

Msvcrt 在Vista(SP2)64位上:为什么我的C/C++;运行时(CRT)程序集缓存对我的应用程序不可见?,msvcrt,crt,global-assembly-cache,Msvcrt,Crt,Global Assembly Cache,向所有VC++和WIndows专家致敬!;) 首先,我的背景是:Vstudio,C+C++,Windows。(如果你愿意,你可以和我一起做技术)。 在尝试了5天的各种可能性、论坛和修复,甚至更改了O/S平台之后,我决定在这里发布(或者跳出窗口!)我正痛苦地试图解决这个问题,因为它阻碍了我的实际开发工作!!:) 苏。。比率为: 出现问题的开发机器: OS:Windows Vista 64位带SP2(即使在使用VMWare运行的32位XP SP2虚拟机上也会出现相同的问题)。 开发IDE:Visua

向所有VC++和WIndows专家致敬!;)

首先,我的背景是:Vstudio,C+C++,Windows。(如果你愿意,你可以和我一起做技术)。 在尝试了5天的各种可能性、论坛和修复,甚至更改了O/S平台之后,我决定在这里发布(或者跳出窗口!)我正痛苦地试图解决这个问题,因为它阻碍了我的实际开发工作!!:)

苏。。比率为: 出现问题的开发机器: OS:Windows Vista 64位带SP2(即使在使用VMWare运行的32位XP SP2虚拟机上也会出现相同的问题)。 开发IDE:VisualStudio2008,安装了SP1。 输出二进制类型:.DLL(它的命运是成为开发人员IDE caled RealStudio的插件)

问题/问题: 我开发了一个32位的C++ DLL,用于VStudio 2008。它包括一个相当大的C++库,称为ASDCP(用于音频/视频编解码处理)——它是用纯C++编写的,并在Win32、Linux、MaOS等方面有完整的内置支持。 现在,ASDCP库使用C++标准库(存储在MSVCP90.DLL和.LIB文件)中。 因此,当我构建自己的插件(DLL),并允许它的调用程序(称为RealStudio,另一个开发IDE)时,没有ASCP库(因此不需要C++ STDLIBS链接),它工作得很好。 但是当我从ASDCP库添加代码时,选择静态链接(/MT)C++运行库,然后加载插件并运行RealStudio,它是内存泄漏的BMIN,可能是“访问违规”-可能是由于不同DLL之间的一些不匹配造成的。
现在,我在这篇文章中的问题是,当我在VStudio 2008中动态链接CRT,然后尝试通过rnnign RealStudio加载插件时——该死的事情就是找不到Microsoft.CRT.VC90的按大小排列的程序集缓存!!我已经处理了所有清单文件,将清单文件嵌入到DLL中,检查了(大约10次!)WinSxs程序集缓存中CRT的版本,以满足清单文件/依赖性需要

但不知何故……RealStudio(RunAs Appistrator)无法加载我的CRT 9 dll(尤其是MSVCP90.dll)。我在MSDN和其他论坛上花了大约15个小时来研究一些小问题和解决方案,并按照Microsoft论坛主持人的建议实施了这些解决方案。但没有用

如何获得一个32位的C++ DLL,运行在64个窗口(Vista SP2)上,以“查看”相关CRT依赖性的ActhBLCache并加载它? 救命!求求你

深深地感谢你帮助我恢复了理智


Dinesh

为平台目标x86构建托管项目。 我的意思是,不要为“任何CPU”构建它