Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linker 我需要将混合模式应用程序链接到哪些库?_Linker_C++ Cli_Mixed Mode - Fatal编程技术网

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

Linker 我需要将混合模式应用程序链接到哪些库?,linker,c++-cli,mixed-mode,Linker,C++ Cli,Mixed Mode,我将.NET支持集成到C++应用程序中。 这是一个老式的MFC应用程序,使用“/clr”选项编译了一个额外的文件,该选项引用CWInformControl 不允许删除链接器标志“/NODEFAULTLIB”。 (我们有自己的构建管理系统,而不是Visual Studio的。) 这意味着我必须指定所有必要的库:VC运行时和MFC 其他编译器选项包括“/MD” 接下来:我不能使用链接器标志“/FORCE:MULTIPLE”并添加所有内容: 我正在寻找一组不重叠的库。至少: mscoree.lib M

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

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

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

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

至少:

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


然后从那里进行迭代。

使用应用向导以您的样式(SDI/MDI/dialog)创建一个基本MFC应用程序,然后。

我是如何解决它的:

  • 链接“/FORCE:MULTIPLE/verbose”(链接ok)并将输出放在一边
  • 使用“/NODEFAULTIB/verbose”链接并跟踪上一步输出中所有未解决的问题,然后逐个添加库
  • 这导致了双重结果:“AAA.lib:XXX已在BBB.lib中定义”
  • 然后我终于明白了: 使用/MD重新编译托管和非托管单元 并链接到(除其他外): mscoree.lib msvcmrt.lib mfcm80d.lib
  • 混合使用/MT(非托管)和/MD(托管)原来是个坏主意: 需要不同的(重叠的)库

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

    谢谢你的回答

    一月