做哪些图书馆,我需要我的混合模式的应用程序链接到?(What libraries do I need

2019-09-27 23:48发布

我整合.NET支持到我们的C ++应用程序。
这是一个老派的MFC应用程序,与1个额外的文件与引用CWinFormsControl了“/ CLR”选项编译。

我不能删除链接标志“/ NODEFAULTLIB”。
(我们有自己的构建管理系统,而不是Visual Studio的。)
这意味着我必须指定所有必要的库:VC运行库和MFC。

其他编译器选项包括“/ MD”

旁边:我不能使用链接标志“/ FORCE:多”,只是添加的一切
我在寻找一个非重叠组库。

Answer 1:

作为最低限度:

mscoree.lib MSVCRT.LIB mfc90.lib(适当地调整版本)

并从那里重复。



Answer 2:

使用应用程序向导在你的风格(SDI / MDI /对话框)来创建一个最基本的MFC应用程序,然后把你的依赖 。



Answer 3:

如何我解决它:

  1. (链接OK),并设置输出预留:用“MULTIPLE /冗长/ FORCE”链接。
  2. 以“/ NODEFAULTIB /详细”链接和跟踪在先前步骤中的输出的所有unresolveds和由1添加的库1。
  3. 这导致双打:“AAA.lib:XXX已经在BBB.lib定义”
  4. 后来我终于明白了:重新编译托管和非托管单位/ MD,并链接到(其中包括):mscoree.lib msvcmrt.lib mfcm80d.lib

混合/ MT(非托管)和/ MD(管理)原来是个糟糕的主意:需要不同的(重叠)库。

@ajryan:Dependcy沃克只是告诉我使用什么DLL的,不是库链接链接时。 (如msvcmrt.lib?)我想。

感谢您的答案!

一月



文章来源: What libraries do I need to link my mixed-mode application to?