我需要哪些库将我的混合模式应用程序链接到?

问题描述:

我将.NET支持集成到我们的C++应用程序中。
这是一个老派的MFC应用程序,其中1个额外的文件使用引用CWinFormsControl的“/ clr”选项编译。我需要哪些库将我的混合模式应用程序链接到?

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

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

下一页到:我不能使用链接标志“/ FORCE:多”,只是添加一切
我在寻找一个非 - 重叠库的集合。

我如何解决它:

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

混合/ MT(非托管)和/ MD(托管)结果是不好主意: 需要不同的(重叠)库。

@ajryan:Dependcy Walker只告诉我使用了什么dll,而不是连接时链接的库。 (例如msvcmrt.lib?) 我想。

感谢您的答案!

1月

作为最低限度:

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

从那里重复。

使用应用程序向导以您的风格(SDI/MDI /对话框)创建一个基本的MFC应用程序,然后使用put on your depends