2011-07-04 241 views
0

我使用Visual C++开发了一个非托管DLL,它是我的应用程序的一部分。我一直有链接VC运行时库的各种问题。不知何故,我使用VS 2005进行管理,但自从我转移到VS 2008后,我的DLL的发行版不再适用于任何使用我的开发工具(即VS 2008)的PC上。Visual Studio 2008并排安装问题

我将运行时库链接为多线程DLL(/ MD)。我尝试了/ MT选项,但是会导致很多错误消息。我允许隔离清单文件,并且当然安装了VC++ 2008运行时(尽管我不认为这是需要的)。我也试着依赖沃克检查缺少的东西。在我的开发PC(安装了VS 2008 SP1)三个文件失踪:

MSVCR90.DLL,GPSVC.DLL,IESHIMS.DLL

但是,这并不停止运行该应用程序(和我的DLL)。

在我尝试安装我的应用程序的所有其他PC上,除了这三个之外,第四个文件被dep报告为缺失。步行者:MSVCP90.DLL。

更重要的是,我自己的DLL不能正常工作。 我知道这不是什么新东西,我试图阅读所有关于SxS问题的信息,但我仍然不知道该怎么做。希望我对“现象”的描述足以让有经验的人给我一些帮助。

在此先感谢。

回答

0

您可能需要分发和安装Microsoft Visual C++ 2008 Redistributable或其SP1版本。

+0

这不应该需要,但我已经尝试过这些。这是行不通的。不幸的是,Windows显示的错误信息根本没有帮助。它只是说我的.exe不能'看到'我自己的DLL,即使它在同一个文件夹中。 有没有其他的工具可以用来检查什么似乎失踪?依赖Walker报告在安装VS的我的开发PC上缺少三个文件(见上),但该应用程序在那里工作。在其他PC上丢失了第四个(MSVCP90.DLL)。这是任何人的线索? – Aronsatie

+0

确保您在目标计算机上安装了正确的VC Runtime SP。您也可以在一台机器上安装RTM和SP。 – Ajay

+0

我试了几个(2008年可再发行和它的SP1版本)。我怎么知道我有正确的?谢谢。 – Aronsatie