在按钮事件中加载如下代码,可老是出错
是不是类型错误呢?还是需要加载地头文件没加??麻烦各位帮我看看呀
谢谢了:)--------------------
UpdateData(true);
HKEY hKEY;long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ,&hKEY));
if(ret0!=ERROR_SUCCESS)
{ AfxMessageBox("错误:无法打开有关的hKEY"); return; }m_strOwner="192.168.0.19";
LPBYTE owner_Set=CString_To_LPBYTE(m_strOwner);//这里老是出错啊,怎么回事
DWORD type_1=REG_SZ;
DWORD cbData_1=m_strOwner.GetLength()+1;long ret1=::RegSetValueEx(hKEY,"IPAddress",NULL,type_1,owner_Set,cbData_1);
if(ret1!=ERROR_SUCCESS)
{ AfxMessageBox("错误:无法设置有关的注册表信息"); return; }m_strCompany="192.168.0.1";
LPBYTE company_Set=CString_To_LPBYTE(m_strCompany);//这里老是出错啊,怎么回事
DWORD type_2=REG_SZ;
DWORD cbData_2=m_strCompany.GetLength()+1;long ret2=::RegSetValueEx(hKEY,"SubnetMask",NULL,type_2,company_Set,cbData_2);
if(ret2!=ERROR_SUCCESS)
{ AfxMessageBox("错误:无法设置有关的注册表信息"); return; }
else
{ AfxMessageBox("修改完成"); }::RegCloseKey(hKEY);
UpdateData(false);

解决方案 »

  1.   

    其中data_Set="SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\{8ECEEB4F-0294-4C91-BAC0-62F54BF270F4}\\";
      

  2.   

    贴出CString_To_LPBYTE()的实现。
    或者贴出错误。
      

  3.   

    sorry
    刚来,吃饭好从外面才回来看错误是
    --------------
    D:\myip\myipDlg.cpp(183) : error C2065: 'CString_To_LPBYTE' : undeclared identifier
    D:\myip\myipDlg.cpp(183) : error C2440: 'initializing' : cannot convert from 'int' to 'unsigned char *'
            Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
    D:\myip\myipDlg.cpp(194) : error C2440: 'initializing' : cannot convert from 'int' to 'unsigned char *'
            Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
    Error executing cl.exe.myip.exe - 3 error(s), 0 warning(s)
      

  4.   

    请高手帮我看看啊,,,
    原文件在这,非常小,代码也很少
    非常感激
    http://bbs.nju.edu.cn/file/S/sunbreeze/myip.rar
      

  5.   

    'CString_To_LPBYTE' : undeclared identifier
    未定义,是不是少了什么头文件?
    或者自己写一下好了,CString到Byte* 的转换。
      

  6.   

    'CString_To_LPBYTE'
    这个如何定义啊?我不清楚还请你们讲得再明白些谢谢:)
      

  7.   

    你的这个程序哪里抄来的?
    缺了CString_To_LPBYTE()这个函数的定义。
    初学C++?
      

  8.   

    呵呵,查看人家修改注册表地:)也知道这个未定义,可不知如何定义
    晚上才能回去看...是初学VC但不是C++
      

  9.   

    我想这个函数要实现的功能就是
    输入:"10.0.0.1",输出BYTE[0] = 10, BYTE[1] = 0,BYTE[2] = 0,BYTE[3] = 1,
    自己写吧
      

  10.   

    真对不起啊对的,有个函数真少了定义
    后来在人家中地找到了,刚刚在家中调试了好一会儿,还有有错,这就不晓得怎么回事了
    编译没错了,就是:错误代码地地方
    -----------------
    long ret1=::RegSetValueEx(hKEY,"IPAddress",NULL,type_1,owner_Set,cbData_1);
    if(ret1!=ERROR_SUCCESS)
    { AfxMessageBox("错误:无法设置有关的注册表信息"); return; }
    应该添加的函数原形
    --------------------------
    LPBYTE CString_To_LPBYTE(CString str)
    {
    LPBYTE lpb=new BYTE[str.GetLength()+1];
    for(int i=0;i<str.GetLength();i++)
    lpb[i]=str[i];
    lpb[str.GetLength()]=0;
    return lpb;
    }
      

  11.   

    lfchen(一条晚起的虫) ( ) 信誉:100 晚起的虫啊...帮我看看啊
    谢谢了
      

  12.   

    看一下你自己的注册表的值。
    data_Set="SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\{8ECEEB4F-0294-4C91-BAC0-62F54BF270F4}\\";
    ---------------------
    {8ECEEB4F-0294-4C91-BAC0-62F54BF270F4}这个值你机器上有吗?根据你自己注册表里的值改一下就可以查到了。
      

  13.   

    我机器上是有这个值地,而且可以读出,所这值是一定存在的,这没问题但不能修改啊,出错,肯定是在程序上没设置好或是别地问题不会地人,可比登天还难:)
    会地人,就是小case~~~
      

  14.   

    if(ret1!=ERROR_SUCCESS)
    {
    DWORD dwError = GetLastError();
    AfxMessageBox("错误:无法设置有关的注册表信息");
    return;
    }
    看一下dwError的值。
    会不会没有写注册表的权限?
      

  15.   

    long ret0=(::RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0,KEY_READ | KEY_WRITE,&hKEY));