首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

ccrun,typedef ULONG_PTR HACCESSOR;又跟wmp出现歧义

2012-02-29 
求助ccrun,typedef ULONG_PTR HACCESSOR又跟wmp出现歧义上次HKEY_LOCAL_MACHINE冲突的事你告诉我以后我改

求助ccrun,typedef ULONG_PTR HACCESSOR;又跟wmp出现歧义
上次HKEY_LOCAL_MACHINE冲突的事你告诉我以后我改好了,


现在又遇到同样问题,
在oledb.h里面

typedef ULONG_PTR HACCESSOR;

#define DB_NULL_HACCESSOR 0x00 // deprecated; use DB_INVALID_HACCESSOR instead
#define DB_INVALID_HACCESSOR 0x00
typedef ULONG_PTR HROW;

#define DB_NULL_HROW 0x00
typedef ULONG_PTR HWATCHREGION;

#define DBWATCHREGION_NULL NULL
typedef ULONG_PTR HCHAPTER;


这几行同样是出现
[C++ Error] oledb.h(1077): E2015 Ambiguity between 'ULONG_PTR' and 'Wmplib_tlb::ULONG_PTR'
这样的错误


上次您说是用
#undef HKEY_LOCAL_MACHINE
#define HKEY_LOCAL_MACHINE ((HKEY)(::ULONG_PTR)((LONG)0x80000002))
即重定义宏来解决的,
这次是不是也要重定义宏啊?
怎么定义,
求解答,
多谢了


[解决办法]
HKEY_LOCAL_MACHINE是#define定义的,所以可以用#undef来取消定义。
而ULONG_PTR是typedef定义的数据类型,这个不适用的。

TWindowsMediaPlayer这个组件太恶心了。
最糟糕的解决方法:把oledb.h备份一下,然后把里面的ULONG_PTR通通改成::ULONG_PTR再试试吧。

热点排行