我有一個tlb文件,其中包含一些我需要使用的函數聲明。如何在本地C++項目中使用tlb文件
如果我使用
#import "type_library.tlb"
我可以correclty從我的代碼中引用的函數:
tlb_namespace::required_function();
但是,當我編譯項目鏈接說tlb_namespace :: required_function是一個未解決的外部符號。
我該如何成功構建這種類型的項目?
編輯:
我曾經在一個虛擬VBA項目的訪問使用相同的類型庫。我已經添加了對類型庫的引用,並且我注意到正確調用了類型庫中包含的某些功能。但其中一些不是。 VBA說它無法在相關的DLL中找到它們的入口點。
這可以解釋構建C++應用程序時無法解析的外部符號嗎?
我也注意到,失敗函數在TLB中這樣宣稱:
UPPER_function_name
,但在DLL中的聲明如下:
Upper_function_name
可這是問題?
是否有可能解決這種類型的錯誤,直接修改二進制tlb文件或DLL?
是'#進口 「type_library.tlb」 '在你的項目中這個tlb唯一的#import指令。它是否與函數調用駐留在相同的cpp中?如何在生成的.tlh和.tli文件中定義'required_function'? – 2013-03-13 10:18:04
@ZdeslavVojkovic現在的項目是一個非常簡單的項目,因此#import只是一個,它駐留在調用的同一個.cpp文件中。我試圖生成.tlh和.tli文件......只有當我去項目屬性\預處理器生成預處理文件時才顯示它們。但是,我可能不會將它們以正確的模式添加到項目中,因爲如果我這樣做,我會得到另一個鏈接器錯誤。 – sblandin 2013-03-13 10:54:08
您不必添加它們。它們將在構建發佈/調試文件夾期間創建,因此請在那裏查找它們。 – 2013-03-13 11:01:42