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

C++Builder中使用TWindowsMediaPlayer时的HKEY_LOCAL_MACHINE值出现的有关问题

2012-02-21 
求助C++Builder中使用TWindowsMediaPlayer时的HKEY_LOCAL_MACHINE值出现的问题我在界面中加入了一个TWindo

求助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;
  ...
}

[解决办法]

C/C++ code
#undef  HKEY_LOCAL_MACHINE#define HKEY_LOCAL_MACHINE ((HKEY)(::ULONG_PTR)((LONG)0x80000002)) 

热点排行