看看MSDN,主要用到以下几个函数:
RegOpenKey
RegSetValueEx
RegCloseKey,
一般可放在:HKEY_LOCAL_MACHINE下的Software\公司名\软件名\项目名等

解决方案 »

  1.   

    HKEY hKey;
        DWORD dwPosition;
        char IPStr[] = "127.0.0.1";
        ::RegCreateKeyEx( HKEY_LOCAL_MACHINE,
           "SOFTWARE\\company\\AppName",
            0, "", 0, KEY_READ | KEY_WRITE,
            NULL, &hKey, &dwPosition );    ::RegSetValueEx(hKey, "IP", 0, REG_SZ,
         (LPBYTE) IPStr, strlen(IPStr)+1);
        ::RegCloseKey( hKey );
      

  2.   

    char* GetReg(char *_keyname, char *_valuename)//get a value of the registry
    {

    char*  pszBuffer;

    char   szObject[256] = "";
    DWORD  dwBytes;
    int    i = 0;
    int    j = 0;
    HKEY hKey;

    char keyname[255];
    sprintf(keyname,"%s",_keyname);
    char valuename[255];
    sprintf(valuename,"%s",_valuename);
    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,keyname,0,KEY_ALL_ACCESS,&hKey) == ERROR_SUCCESS)
    {
    if (RegQueryValueEx( hKey,valuename,NULL, NULL, NULL,&dwBytes ) == ERROR_SUCCESS)
    {
    pszBuffer = (char *) HeapAlloc( GetProcessHeap(),HEAP_ZERO_MEMORY,dwBytes );

    if (RegQueryValueEx( hKey,valuename,NULL, NULL,(LPBYTE)pszBuffer,&dwBytes ) == ERROR_SUCCESS)
    {
    RegCloseKey(hKey);
    return pszBuffer;

    }

    }

    RegCloseKey(hKey);
    return "";

    }

    return "";


    }void SetReg(char *_keyname, char *_valuename, char *_content)//save to the registry
    {


    char   szObject[256] = "";
    int    i = 0;
    int    j = 0;
    HKEY hKey;

    char keyname[255];
    sprintf(keyname,"%s",_keyname);
    char valuename[255];
    sprintf(valuename,"%s",_valuename);
    char content[255];
    sprintf(content,"%s",_content);

        RegOpenKeyEx(HKEY_LOCAL_MACHINE,
    keyname,
    0,
    KEY_SET_VALUE,
    &hKey);

    RegSetValueEx(hKey, valuename,
    0,
    REG_SZ,
    (CONST BYTE *) &content,
    strlen(content)+1 );


        RegCloseKey(hKey);
    }GetReg("Software\\MySoftWare","LogScreen");
    SetReg("Software\\MySoftWare","LogScreen" ,"TRUE");
      

  3.   

    HKEY hKey = NULL;
        DWORD dwBufLen = _MAX_PATH;
        DWORD dwType = REG_SZ;
        char  szIP[32];    ::RegOpenKeyEx( HKEY_LOCAL_MACHINE,
           "SOFTWARE\\Comapny\\AppName",
            0, KEY_QUERY_VALUE, &hKey );    ::RegQueryValueEx( hKey, "IP", NULL, &dwType,
         (LPBYTE)szIP, &dwBufLen);
    ::RegCloseKey(hKey);
      

  4.   

    自己去看MSDN吧,里面有一些例子的,比这里好多了。
      

  5.   

    放在HKEY_CURRENT_USER,的SoftWare下比较合适。用(我实际做成功过的):
    DWORD dwRet;
    DWORD dwLength;
    HKEY hKey;
    if(ERROR_SUCCESS == RegCreateKeyEx (HKEY_CURRENT_USER,"SoftWare\\YourSpecAPP", 0L, NULL,
    REG_OPTION_VOLATILE, KEY_ALL_ACCESS, NULL, 
    &hKey, &dwRet)){
    AfxMessageBox("Create Succeeded!");
    }
    就可以在注册表中加一个目录了!
      

  6.   

    我刚做完一个和注册表有关的程序,把里面的一部分按你的要求修改乐一下
    放在initdialog里应该好用,它会在注册表的HKEY_LOCAL_MACHINE主键的sotrware子键下键一个ip键,你试一下吧
    //从注册表里取出设置
    HKEY hKey;
    HKEY hkResult;
    LONG result;
    hKey=HKEY_LOCAL_MACHINE;
    CString SubKey = "SoftWare\\ip";
    result = RegOpenKeyEx(hKey,SubKey,0,KEY_ALL_ACCESS,&hkResult);
    if(result!=ERROR_SUCCESS)
    {
    result = RegCreateKey(hKey,SubKey,&hkResult);
    if(result != ERROR_SUCCESS)
    {
    MessageBox("程序初始化失败");
    }
    //初始化注册表
    else
    {
                   char ip[256];
                   strcpy(ip,"...");
                   RegSetValueEx(hkResult,"ip",0,REG_SZ,(CONST BYTE*)ip,256);
                   RegCloseKey(hkResult);
              }
    else
    {
    char i[256];
    DWORD Type = REG_SZ,Size = 256;
    RegQueryValueEx(hkResult,"ip",0,&Type,(BYTE*)ip,&Size);
    RegCloseKey(hkResult);
    }