如何打包VC ++ Win32控制台应用程序和DLL

时间:2011-09-06 21:45:50

标签: visual-studio visual-c++

我为它开发了一个Win32控制台应用程序DLL和一个小型测试器应用程序。据我所知,它既不使用MFC,.COM,.NET或其他任何东西。开发平台是WinXP / SP3上的VS2009

当我将DLL和EXE提供给其他人时,它们无法使用。尝试使用它们会产生类似于“应用程序无法使用,应用程序配置错误”的错误。和“找不到xxx.dll”(不是这些错误消息的确切措辞)。

我从阅读中了解到,EXE和DLL必须附带依赖项。这些依赖似乎是特定于VS 2009 abd应该包括MSVCRT09等。

当我按照MS的指示为安装和部署项目制作setup.exe / MSI安装程序时(http://msdn.microsoft.com/en-us/library/ms235317%28v=VS.90%29。 aspx)我将dll添加到项目中,将其移动到“MyLibrary”文件夹,并且在解决方案资源管理器中找不到或列出了依赖项。然而,我知道存在依赖关系,DEPENDS.EXE这样说。

任何人都可以引导我完成此操作或使用说明命名更好的网站。再一次,MS的帮助并不是那么有用。

感谢,

韦斯

1 个答案:

答案 0 :(得分:1)

Visual Studio 2008是9.0版。正如您所发现的,使用Visual C ++ 2008构建的程序通常依赖于C运行时库MSVCRT09。如果目标PC上未安装C运行时库(已安装或作为安装项目的一部分),则您的应用程序将失败,如您所发现的那样。 DEPENDS.EXE显示依赖项并不奇怪。唯一的问题似乎是Visual Studio 2008在其解决方案资源管理器窗口中不显示依赖关系的原因。

在构建Visual Studio安装项目(MSI和安装文件)之前,Visual Studio可能还没有任何理由来搜索依赖项。但是在构建安装项目之后,根据我的经验,解决方案资源管理器确实显示了它找到的依赖项,紧接着您明确设置的其他依赖项。如果那些没有在建筑后出现,有些东西很奇怪。