Visual c++ 在VisualC++中如何以LPTSTR变量作为参数读取值?
我尝试了MSDN中的一个示例,该示例演示了如何使用文件映射函数进行读写。我将代码粘贴在这里,供您参考MSDN。链接是 如果您看到有以下语句MessageBoxNULL、pBuf、TEXTProcess2、MB_OK; 它接受pBuf LPCTSTR变量并打印文件中输入的内容。 我想检索pBuf指向的内容,或者有人可以指导messagebox如何读取值。 我尝试使用*pBuf,但它提供了一些位置。我只是被困在这里。请帮忙 您正在使用OpenFileMapping而不使用CreateFileMapping。因此,hMapFile为null 即使使用CreateFileMapping,除非将某些内容写入MapFile,否则pBuf在代码中始终为空 下面的代码只是示例。我希望这会对你有所帮助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
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;
}