c++builder操作64位系统失败?

lctqzq 2013-04-16 05:25:07



TStringList *List1;
TRegistry *Reg;

List1=new TStringList();
Reg=new TRegistry();

Reg->RootKey=HKEY_LOCAL_MACHINE;
if(Reg->OpenKey("SOFTWARE\\Borland\\C++Builder",false))
{
Reg->GetKeyNames(List1); //在W7 64位系统下,读取为空值,有谁知道原因的
ShowMessage(List1->Text);
}
else ShowMessage("失败");
delete List1;


--在32位系统能读取成功
...全文
209 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lctqzq 2013-04-17
  • 打赏
  • 举报
回复
引用 1 楼 gzliudan 的回复:
权限的问题,你搜一下UAC。32位应用在64位系统下可以用管理员身份运行,这时读取的是HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\下面的注册表。或者编译一个manifest进去,强制以管理员身份运行。
--是不是改为: if(Reg->OpenKey("SOFTWARE\\Wow6432Node\\Borland\\C++Builder",false))
gzliudan 2013-04-16
  • 打赏
  • 举报
回复
权限的问题,你搜一下UAC。32位应用在64位系统下可以用管理员身份运行,这时读取的是HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\下面的注册表。或者编译一个manifest进去,强制以管理员身份运行。

552

社区成员

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

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