求助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再试试吧。