求助C++Builder中使用TWindowsMediaPlayer时的HKEY_LOCAL_MACHINE值出现的问题
我在界面中加入了一个TWindowsMediaPlayer控件,
加入这个控件以前代码没问题,
加入以后代码编译就通不过了,
出现错误 在代码 reg->RootKey = HKEY_LOCAL_MACHINE; 这行出现错误
[C++ Error] uMain.cpp(1659): E2015 Ambiguity between 'ULONG_PTR' and 'Wmplib_tlb::ULONG_PTR'
请问是否库文件里定义了跟HKEY_LOCAL_MACHINE相同的值,
还是其他什么问题?
C++Builder实在是不熟,
谢谢了
部分代码如下:
void __fastcall TfrmMain::Image1Click(TObject *Sender)
{
if((Trim(EdtTitle->Text) == "") || (cboCateNum->Text == ""))
Application->MessageBox("请输入标题和一个分类!", "提示信息", MB_OK + MB_ICONWARNING);
else
{
AnsiString strSql, strFileName, strImagePath = "", strD,strS, StrV;
strFileName = StringReplace(/*ADKSPlayer->fileNameOfPlay*/FilePath, "/","\\",TReplaceFlags()<<rfReplaceAll<<rfIgnoreCase);
DM->Query1->Close();
DM->Query1->SQL->Text = "select Top 1 * from category where catenum = \'" + cboCateNum->Text + "\'";
//------------------- 此处使用一个与cboStyle相同的cboCateNum下拉框,来记录CateNum
DM->Query1->Open();
if (DM->Query1->RecordCount > 0)
StrV = DM->Query1->FieldByName("catenum")->AsString;
//判断是否为内部版本
TRegistry *reg = new TRegistry();
reg->RootKey = HKEY_LOCAL_MACHINE; //错误出现在这行
AnsiString strInnerV="";
if (reg->OpenKey("SOFTWARE\\XXXXXXXXXXXX单位", false))
{
strInnerV = reg->ReadString("InnerVersion");
}
reg->CloseKey();
delete reg;
...
}
[解决办法]
#undef HKEY_LOCAL_MACHINE#define HKEY_LOCAL_MACHINE ((HKEY)(::ULONG_PTR)((LONG)0x80000002))