Как работать с MMFdata в c? - PullRequest
0 голосов
/ 16 января 2012

У меня следующий код с ошибками компиляции, и я не могу понять, что я не определил хорошо:

#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" не определен
Что мне здесь не хватает?

1 Ответ

0 голосов
/ 16 января 2012

В вашей программе:

MMFdata = fopen(OsFileName, "w+");

является оператором вне функции.

Вы не можете иметь операторы с областью действия файла, этот оператор должен находиться внутри тела функции.

Кроме того, идентификатор OsFileName не определен в вашей программе.

...