编译器错误 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;
}