这是一个测试IDL文件:
import "unknwn.idl";
[uuid(f531223f-43bb-49d4-80fc-30ceb5f4f990)]
coclass test
{
interface Itest;
}
[uuid(deb8730f-f811-4cb3-bd8f-b1601926bd48)]
interface Itest : IUnknown
{
HRESULT function(int var);
};
当我运行midl test.idl
命令时,它不会在test.h
头文件中添加CLSID。但是mingw-w64的WIDL(来自wine项目)在头文件中都添加了CLSID和IID。
在使用库属性后:
import "unknwn.idl";
[uuid(82c87f04-887a-41b2-9c2d-0f3a6a973efd)]
library testLib
{
[uuid(f531223f-43bb-49d4-80fc-30ceb5f4f990)]
coclass test
{
interface Itest;
}
};
[uuid(deb8730f-f811-4cb3-bd8f-b1601926bd48)]
interface Itest : IUnknown
{
HRESULT function(int var);
};
那些GUID包含在C ++和EXTERN_C中。并在单独的C文件中提到,但在头文件中没有提及。
如何使用MIDL进行相同操作?还是我在IDL文件中做错了什么?