MFC学习 文件操作注册表操作

c读写文件

void CFileView::OnRead()
{

    FILE *pFile = fopen("1.txt", "r");
    /*char ch[100 * 1024];
    memset(ch, 0, sizeof(ch));
    fread(ch, 1, sizeof(ch), pFile);
    fclose(pFile);
    MessageBox(ch);*/
    
    fseek(pFile, 0, SEEK_END);
    int len = ftell(pFile);
    char *pBuf;
    pBuf = new char[len + 1];
    rewind(pFile);
    fread(pBuf, 1, len, pFile);
    pBuf[len] = '';
    fclose(pFile);
    MessageBox(pBuf);

    //二进制读写与文本读写不同, 文本以行为单位的13(0xD) 10(0xA)
    
}

void CFileView::OnWrite()
{

    FILE *pFile = fopen("1.txt", "a+");
    fseek(pFile, 0, SEEK_SET);
    fwrite("test", 1, strlen("test"), pFile);
    fflush(pFile);
    fclose(pFile);
}

c++读写文件

void CFileView::OnReadcplusplus()
{
    

    std::fstream fs("2.txt");
    char ch[200];
    memset(ch, 0, 100);
    //fs.read(ch, 100);
    fs >> ch;
    fs.close();
    MessageBox(ch);
    
}

void CFileView::OnWritecplusplus()
{
    std::fstream fs("2.txt", std::ios::in | std::ios::out | std::ios::trunc);
    fs.write("test", strlen("test"));
    fs << "test123" << std::endl;
    fs.close();

}

win32API读写文件

void CFileView::OnReadapi()
{

    HANDLE hFile;
    hFile = ::CreateFile("3.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    char ch[500];
    DWORD dwReads;
    ::ReadFile(hFile, ch, 500, &dwReads, NULL);
    ch[dwReads] = 0;
    CloseHandle(hFile);
    MessageBox(ch);
}

void CFileView::OnWriteapi()
{

    HANDLE hFile;
    hFile = ::CreateFile("3.txt", GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
    DWORD dwWrites;
    ::WriteFile(hFile, "mytest", strlen("mytest"), &dwWrites, NULL);
    CloseHandle(hFile);
}

MFC的CFile类读写文件

void CFileView::OnReadmfc()
{

    CFile file("4.txt", CFile::modeRead);
    char *pBuf;
    DWORD dwFileLen;
    dwFileLen = file.GetLength();
    pBuf = new char[dwFileLen + 1];
    pBuf[dwFileLen] = 0;
    file.Read(pBuf, dwFileLen);
    file.Close();
    MessageBox(pBuf);
}

void CFileView::OnWritemfc()
{

    CFile file("4.txt", CFile::modeCreate | CFile::modeWrite);
    char ch[200] = "tester";
    file.Write(ch, strlen(ch));
    file.Close();
}

注册表操作

void CFileView::OnReadreg()
{

    
    CString str;
    LONG lSize;
    //读取项的缺省值
    RegQueryValue(HKEY_LOCAL_MACHINE, "Software\test\admin", str.GetBuffer(200), &lSize);
    MessageBox(str);

    //读取项的值
    HKEY hKey;
    RegOpenKey(HKEY_LOCAL_MACHINE, "Software\test\admin", &hKey);
    DWORD dwType;
    DWORD dwValue;
    DWORD dwAge;
    RegQueryValueEx(hKey, "age", 0, &dwType, (LPBYTE)&dwAge, &dwValue);
    CString str2;
    str2.Format("age=%d", dwAge);
    MessageBox(str2);
}

void CFileView::OnWritereg()
{
    HKEY hKey;
    RegCreateKey(HKEY_LOCAL_MACHINE, "Software\test\admin", &hKey);
    //第二个参数为键名, 如果没有, 设置缺省的值
    //第三个参数只能是REG_SZ(字符串型), 如果存放其它型的要用RegSetValueEx
    RegSetValue(hKey, NULL, REG_SZ, "wangwu", strlen("wangwu"));
    //写整数
    DWORD dwAge = 30;
    RegSetValueEx(hKey, "age", 0, REG_DWORD, (CONST BYTE*)&dwAge, 4);
    RegCloseKey(hKey);
}

void CFileView::OnDeleteregitem()
{
    //删除项Key
    //RegDeleteKey(HKEY_LOCAL_MACHINE, "Software\test\admin");
    //删除值
    HKEY hKey;
    RegOpenKey(HKEY_LOCAL_MACHINE, "Software\test\admin", &hKey);
    RegDeleteValue(hKey, "age");

}

 例子下载

原文地址:https://www.cnblogs.com/barrysgy/p/3215753.html