Visual c++ 在VisualC++中如何以LPTSTR变量作为参数读取值?

Visual c++ 在VisualC++中如何以LPTSTR变量作为参数读取值?,visual-c++,memory-management,shared-memory,file-mapping,Visual C++,Memory Management,Shared Memory,File Mapping,我尝试了MSDN中的一个示例,该示例演示了如何使用文件映射函数进行读写。我将代码粘贴在这里,供您参考MSDN。链接是 如果您看到有以下语句MessageBoxNULL、pBuf、TEXTProcess2、MB_OK; 它接受pBuf LPCTSTR变量并打印文件中输入的内容。 我想检索pBuf指向的内容,或者有人可以指导messagebox如何读取值。 我尝试使用*pBuf,但它提供了一些位置。我只是被困在这里。请帮忙 您正在使用OpenFileMapping而不使用CreateFileMapp

我尝试了MSDN中的一个示例,该示例演示了如何使用文件映射函数进行读写。我将代码粘贴在这里,供您参考MSDN。链接是

如果您看到有以下语句MessageBoxNULL、pBuf、TEXTProcess2、MB_OK; 它接受pBuf LPCTSTR变量并打印文件中输入的内容。 我想检索pBuf指向的内容,或者有人可以指导messagebox如何读取值。 我尝试使用*pBuf,但它提供了一些位置。我只是被困在这里。请帮忙

您正在使用OpenFileMapping而不使用CreateFileMapping。因此,hMapFile为null

即使使用CreateFileMapping,除非将某些内容写入MapFile,否则pBuf在代码中始终为空

下面的代码只是示例。我希望这会对你有所帮助

    int main(int argc, char *argv[])
    {
        HANDLE hFile, hMap;
        char *data;
        DWORD written_size;

        //create text file for test
        hFile = CreateFile(L"test.txt",GENERIC_READ|GENERIC_WRITE, 0, 
            NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

        //and write "123" on file
        WriteFile(hFile, "123", 3,  &written_size, NULL);

        //create file map
        hMap = CreateFileMapping(
            hFile,                          //file handle
            NULL,
            PAGE_READWRITE,
            0,                           //file size
            0,                           //file size
            NULL);                    //map name
        if(hMap == NULL)
        {
            cout << "CreateFileMapping() fail";
            CloseHandle(hFile);
            return 1;
        }

        //file link to map
        data = (char *)MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);

        //MessageBox prints "123"
        //Notice that using 'MessageBoxA' for output 'char *'.
        MessageBoxA(NULL, data, "Process2", MB_OK);

        UnmapViewOfFile(data);
        CloseHandle(hMap);
        CloseHandle(hFile);

        return 0;
    }

库蒂用了什么库蒂,我放了一个关于MSDN的链接。我已经创建了另一个程序来写入文件。在上面粘贴的代码中,我需要从pBuf或LPCTSTR读取。我能读懂第一个字母,但我想知道如何读懂整个数字。它是LPCSTR而不是LPCTSTR。我错过了一些东西。
    int main(int argc, char *argv[])
    {
        HANDLE hFile, hMap;
        char *data;
        DWORD written_size;

        //create text file for test
        hFile = CreateFile(L"test.txt",GENERIC_READ|GENERIC_WRITE, 0, 
            NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

        //and write "123" on file
        WriteFile(hFile, "123", 3,  &written_size, NULL);

        //create file map
        hMap = CreateFileMapping(
            hFile,                          //file handle
            NULL,
            PAGE_READWRITE,
            0,                           //file size
            0,                           //file size
            NULL);                    //map name
        if(hMap == NULL)
        {
            cout << "CreateFileMapping() fail";
            CloseHandle(hFile);
            return 1;
        }

        //file link to map
        data = (char *)MapViewOfFile(hMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);

        //MessageBox prints "123"
        //Notice that using 'MessageBoxA' for output 'char *'.
        MessageBoxA(NULL, data, "Process2", MB_OK);

        UnmapViewOfFile(data);
        CloseHandle(hMap);
        CloseHandle(hFile);

        return 0;
    }