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

时间:2008-08-13 08:05:00

标签: linker c++-cli mixed-mode

我正在将.NET支持集成到我们的C ++应用程序中 这是一个老式的MFC应用程序,有一个额外的文件,使用引用CWinFormsControl的“/ clr”选项编译。

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

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

接下来:我不能使用链接器标志“/ FORCE:MULTIPLE”并只添加所有内容
我正在寻找一套不重叠的库。

3 个答案:

答案 0 :(得分:1)

最低限度:

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

从那里迭代。

答案 1 :(得分:1)

使用应用程序向导以您的样式(SDI / MDI /对话框)创建一个简单的MFC应用程序,然后put on your depends

答案 2 :(得分:1)

我是如何解决的:

  1. 链接“/ FORCE:MULTIPLE / verbose”(链接确定)并将输出放在一边。
  2. 链接“/ NODEFAULTIB / verbose”并跟踪上一步输出中的所有未解析的内容,并将库1添加1.
  3. 这导致双打:“AAA.lib:XXX已在BBB.lib中定义”
  4. 然后我终于明白了: 使用/ MD重新编译托管和非托管单元 并链接到(以及其他): mscoree.lib msvcmrt.lib mfcm80d.lib
  5. 混合/ MT(非托管)和/ MD(托管)结果是个坏主意: 需要不同的(重叠的)库。

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

    感谢您的回答!