求助C++Builder中使用TWindowsMediaPlayer时的HKEY_LOCAL_MACHINE值出现的问题

rienzi 2009-05-22 03:08:06
我在界面中加入了一个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;
...
}
...全文
120 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rienzi 2009-05-22
  • 打赏
  • 举报
回复
楼上的实在太感谢了!
我查了一整天!
60分实在不能表达我的谢意!
总之实在太感谢了!
ccrun.com 2009-05-22
  • 打赏
  • 举报
回复
#undef  HKEY_LOCAL_MACHINE
#define HKEY_LOCAL_MACHINE ((HKEY)(::ULONG_PTR)((LONG)0x80000002))


把这两行加到上面代码的前面即可。

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧