我有以下代码,但有编译错误,但我不明白自己定义欠佳的地方:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <tchar.h>
#include <w3file.h>
#define BUF_SIZE 32
FILE * MMFdata;
HANDLE hMapFile;
MMFdata = fopen(OsFileName, "w+");
int _tmain(int argc, _TCHAR* argv[])
{
FILE * MMFdata;
HANDLE hMapFile;
MMFdata = fopen(OsFileName, "w+");
fclose(MMFdata);
hMapFile = CreateFileMapping(
INVALID_HANDLE_VALUE, // use paging file
NULL, // default security
PAGE_READWRITE, // read/write access
0, // maximum object size (high-order DWORD)
BUF_SIZE, // maximum object size (low-order DWORD)
(LPCTSTR)OsFileName); // name of mapping object
if (hMapFile == NULL)
{
_tprintf(TEXT("Could not create file mapping object (%d).n"),
GetLastError());
return 1;
}
}
错误原因:
IntelliSense:此声明没有存储类或类型说明符
IntelliSense:标识符“ OsFileName”未定义
我在这里想念什么?
最佳答案
在您的程序中:
MMFdata = fopen(OsFileName, "w+");
是函数外部的语句。
您不能具有具有文件范围的语句,该语句必须在函数体内。
此外,您的程序中未定义
OsFileName
标识符。关于c - 如何在C中使用MMFdata?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8872971/