編譯器錯誤 C3510
找不到相依類型庫 'type_lib'
no_registry和auto_search傳遞至 #import
,但編譯程式找不到參考的類型庫。
若要解決此錯誤,請確定編譯程式可以使用所有類型連結庫和參考的類型庫。
下列範例會產生 C3510:
假設已建置下列兩個類型連結庫,且已在路徑上刪除或未刪除 C3510a.tlb。
// C3510a.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12b")]
library C3510aLib
{
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12c")]
enum E_C3510
{
one, two, three
};
};
然後是第二個類型連結庫的原始碼:
// C3510b.idl
// post-build command: del /f C3510a.tlb
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12e")]
library C3510bLib
{
importlib ("C3510a.tlb");
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12d")]
struct S_C3510 {
enum E_C3510 e;
};
};
然後用戶端程式代碼:
// C3510.cpp
#import "c3510b.tlb" no_registry auto_search // C3510
int main() {
C3510aLib::S_C4336 ccc;
}