如果我不希望我的程序与msvc * .dll中的任何一个链接,我应该使用哪些标题?

时间:2009-12-17 10:49:17

标签: windows visual-c++ dependencies

如果我不希望我的程序与任何msvc * .dll链接,我应该使用哪些标题?

目前我的应用程序使用:

  1. KERNEL32
  2. USER32
  3. SHELL32
  4. msvcp90
  5. msvcr90
  6. 我想摆脱底部的两个文件。我不介意我是否必须重写该程序的某些方面。

    因为我知道你是否用C编码然后链接它不会链接任何msvc的

3 个答案:

答案 0 :(得分:1)

我相信你必须改变CRT链接到你的程序的方式。我认为你必须将C ++ - > Code Generation-> Runtime-Library更改为静态版本。这适用于Visual Studio 2005,不了解更新的版本。

答案 1 :(得分:0)

这些库包含C ++运行时 - 堆管理和其他难以摆脱的东西。

您可以静态链接C ++ - 使用“C ++ - >代码生成 - >运行时库”设置。那你就不需要那些.dll文件了。但是,这不是推荐的方法 - 如果在C ++运行时中发现漏洞,则必须重新编译并重新启动程序。

答案 2 :(得分:0)

静态链接是正确的答案。一个相关的建议是使用depends.exe来查看你的exe实际在依赖dll中击中的函数。这些依赖关系可能是由于您的明确使用或由于您没有明确调用的CRT实现。