我對C++還是比較陌生的,並且試圖讓我的頭繞着靜態庫和DLL。我剛剛繼承了一些代碼,並想知道是否有人可以給我一個澄清。#pragma comment(lib)v #import?
繼承的代碼包含兩個庫項目,稱它們爲a和b。還有一個主要項目,它使用兩個庫中的類。
我對此感到困惑的是:項目a和項目b在構建時,都將.dll輸出到「.. \。\ Executables」並將.lib輸出到「.. \ Shared \ Lib」 。主體工程的stdafx.h中包括用下面的代碼庫:
#include ..\projectA\a_class.h
#pragma comment(lib, "..\\Shared\\Lib\\projectA.lib")
...它包括庫b。使用下面的代碼:
#import "..\..\Executables\projectB.dll"
然後,它利用了兩個庫類。兩者有什麼區別?爲什麼當我嘗試使用方法B包含庫A時,它不起作用(這些類不可訪問)?
在此先感謝!
['#pragma comment lib'](http://msdn.microsoft.com/zh-cn/library/7f0aews7.aspx)和['#import'](http://msdn.microsoft.com /en-us/library/8etzzkb6.aspx)由Microsoft記錄。鞏固這兩者只不過是兩次點擊而已。一個將link-this-lib傳遞給鏈接器步驟,另一個將DLL/TLB作爲COM庫導入,如果配置爲使用comuutil模板庫生成智能指針包裝器。 – WhozCraig