我用VS2012编写了一个com dll。我有2个项目 - 我的DLL项目和PS项目。 PS有3个类: myproj_i.h myProj_i.c 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?
我也试过使用#llmport的dll,但后来我错过了TLH错误,我还没有在DLL项目中找到该文件。
包括myProjPS.lib也没有解决它......
答案 0 :(得分:1)
MIDL生成的.c文件不使用预编译头文件。如果将它们链接到程序中(我通常会创建它们的静态库,但这是一种不同的方法),则需要为这些特定的.c文件关闭预编译的头文件。
这应该允许它成功编译和链接。