コンパイラ エラー C3510
依存するタイプ ライブラリ 'type_lib' が見つかりません
no_registry と auto_search が #import
に渡されましたが、コンパイラは参照されているタイプ ライブラリを見つけることができませんでした。
このエラーを解決するには、すべてのタイプ ライブラリと参照されるタイプ ライブラリがコンパイラで使用できる必要があります。
次の例では、C3510 が生成されます。
次の 2 つのタイプ ライブラリがビルドされ、C3510a.tlb が削除されたか、パス上にないとします。
// C3510a.idl
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12b")]
library C3510aLib
{
[uuid("f87070ba-c6d9-405c-a8e4-8cd9ca25c12c")]
enum E_C3510
{
one, two, three
};
};
次に、2 つ目のタイプ ライブラリのソース コードを示します。
// 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;
}