各位高手给解释,我不知道为什么直接执行我做的软件向注册表中写id时,只能将字段写进去但是数值是空的,但是当我设断点后数值竟然写进了注册表中。我不知道这是什么原因,那位高手给个理由以及解决方法。谢谢

解决方案 »

  1.   

    sprintf(szTemp,"sa");
    dwCbData = 8;
    RegSetValueEx(hKeyProvider,_T("登录名"),NULL,REG_SZ,(LPBYTE)szTemp,dwCbData);
      

  2.   

    long ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
    cstKey,0,
    KEY_ALL_ACCESS, 
    &hKey);
    if(ret!=ERROR_SUCCESS)

    RegCloseKey(hKEY);
    return FALSE;
    }
    RegSetValueEx(hKey,             // subkey handle 
      "Available",       // value name 
      0,                        // must be zero 
      REG_SZ,            // value type 
      (LPBYTE) szBuf,           // pointer to value data 
      (strlen((TCHAR *)szBuf) * 
      sizeof(TCHAR)) + 1);
    RegCloseKey(hKEY);
      

  3.   

    我估计又是这个问题......
    你试试每个id给一个 HKEY hKey1,hKey2等等等等
    然后分别操作这些
    应该就可以了....
      

  4.   

    你是不是寫了之後馬上又讀 有時候會踫到更新延時的問題 
    我有一次就是這樣 後來寫完之後Sleep(1000);就行了
    你不是設斷點就可以了嗎 可能是斷點的延時使得註冊表數據更新了。
      

  5.   

    wsccpy(szTemp,"sa");
    dwCbData = wsclen(szTemp);
    RegSetValueEx(hKeyProvider,_T("登录名"),NULL,REG_SZ,(LPBYTE)szTemp,dwCbData);
    试一下!:)
      

  6.   

    问题已经解决,是指针多free了一遍,不过还是感谢大家。