我正在为看似超级简单的事情苦苦挣扎:我想使用 MIDL 编译器.tlb
从文件生成类型库(文件).idl
。但是,我就是无法让 MIDL 生成.tlb
文件。
这是我的Foo.idl
:
import "unknwn.idl";
[object, uuid(400075B9-4BD6-45A5-B8B7-9DA0CF7B9B13)]
interface IFoo : IUnknown
{
HRESULT DoFoo([in] int arg, [out, retval] int *result);
}
这就是我调用 MIDL 编译器的方式:
midl Foo.idl /tlb Foo.tlb
它将以下输出写入控制台:
Microsoft (R) 32b/64b MIDL Compiler Version 7.00.0555
Copyright (c) Microsoft Corporation. All rights reserved.
Processing .\Foo.idl
Foo.idl
Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\unknwn.idl
unknwn.idl
Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\wtypes.idl
wtypes.idl
Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\basetsd.h
basetsd.h
Processing C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\guiddef.h
guiddef.h
MIDL 编译器生成三个文件:Foo.h
, Foo_i.c
, Foo_p.c
... 但没有Foo.tlb
。我是不是误解了什么,或者这里出了什么问题?