描述:
IDL文件中的定义如下:
typedef
[uuid(44ABAE82-A173-11d4-98DB-0080C8F5B2E4)]
struct _POI_Data
{
BSTR Name;
float Pointx;
float Pointy;
}POI_Data;
编译无错误,但是警告
warning MIDL2368 : error generating type library, ignored : Could not set UUID : _POI_Data
因为我要使用IRecordInfo * pRecordInfo;
hr = GetRecordInfoFromGuids(
LibID,
MajorVer,
MinorVer,
LOCALE_USER_DEFAULT,
TypeGUID,
&pRecordInfo);
其中的TypeGUID就是Struct的GUID,我都生成不了该怎么办?谢谢!
解决方案1:
typedef
[uuid(44ABAE82-A173-11d4-98DB-0080C8F5B2E4)]
struct _POI_Data
{
BSTR Name;
float Pointx;
float Pointy;
}POI_Data;
改为
typedef
[uuid(44ABAE82-A173-11d4-98DB-0080C8F5B2E4)]
struct POI_Data
{
BSTR Name;
float Pointx;
float Pointy;
}POI_Data;
就没有警告了,TypeGUID可以用__uuidof("POI_Data")。
非要用guid,你可以自己在生成的文件中添加 const IID IID_POI_Data = {XXXXX};
您可能想查找下面的文章:
- 现有IDL文件,如何做EXECOM?能否提供点这个方面的资料?在线等待。。。。
- 做activex插件的cab包时,inf文件中的clsid应该是idl文件中的哪一个?或者随便编一个都没关系?
- 请问如何在IDL文件里面使用自己的的头文件里定义的结构体,作为参数和返回值?40分奉上!
- 我用ATL做了一个COM组件,在delphi调用。如果修改了接口idl文件中函数的位置运行不会根据函数名执行,而是根据最早的idl函数位置执行
- 关于IDL文件的问题?
- 请问,由idl生成的h一系列文件如何指定路径
- 我的idl文件希望使用dinputh中的数据类型,该怎么做?
- 如何把两个以上的IDL文件生成一个tlb文件?或者是把两个TLB文件合在一起生成一个h文件?
- idl文件如何分割成几个小文件
- 项目中的idl文件问题