簡體   English   中英

從MFC調用ATL COM dll

[英]Calling ATL COM dll from MFC

我已經使用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?

我也嘗試使用dll的#import,但是隨后我丟失了TLH錯誤,並且我沒有在DLL項目中找到該文件。

包括myProjPS.lib也沒有解決它...

MIDL生成的.c文件不使用預編譯頭。 如果將它們鏈接到程序中(我通常將它們制成靜態庫,但這是另一種方法),則需要為這些特定的.c文件關閉預編譯的頭文件。

  • 在解決方案資源管理器中右鍵單擊myProj_i.c文件,並顯示其屬性。
  • 在頂部兩個下拉列表中選擇“所有平台/所有配置”。
  • 展開左側樹中的“ C ++設置”。
  • 在左側樹中選擇“預編譯頭”
  • 為該文件將它們關閉。

那應該允許它成功編譯和鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM