gpt4 book ai didi

c++ - 从 MFC 调用 ATL COM dll

转载 作者:太空宇宙 更新时间:2023-11-04 11:50:19 26 4
gpt4 key购买 nike

我使用 VS2012 编写了一个 com dll。我有 2 个项目——我的 DLL 项目和一个 PS 项目。PS有3个类:我的proj_i.h我的项目myProj_p.c

现在我想从另一个 MFC 项目中调用 dll:

hr = CoCreateInstance(
CLSID_MYTASK,
NULL,
CLSCTX_INPROC_SERVER,
IID_IMYTASK,
(void**) &pMYTASK
);

我已经包含了 myproj_i.h 文件 - 所以我可以识别所有符号,但我无法链接它们,因为我缺少 _i.c 文件。

如果我将它们添加到项目中,我会收到大量 PCH 错误。

我应该如何链接我的 MFC 项目并调用 DLL?

我也曾尝试使用 dll 的#import,但后来出现了缺少 TLH 错误,而且我还没有在 DLL 项目中找到该文件。

包括 myProjPS.lib 也没有解决它...

最佳答案

MIDL 生成的 .c 文件不使用预编译 header 。如果您将它们链接到您的程序中(我通常制作它们的静态库,但这是一种不同的方法),您需要关闭那些特定 .c 文件的预编译头文件。

  • 在解决方案资源管理器中右键单击 myProj_i.c 文件并调出其属性。
  • 在顶部的两个下拉列表中选择所有平台/所有配置。
  • 展开左侧树中的 C++ 设置。
  • 在左侧树中选择 Precompiled Headers
  • 为该文件关闭它们。

这应该允许它成功编译和链接。

关于c++ - 从 MFC 调用 ATL COM dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18630430/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com