2012-01-15 8 views
0

私はコンパイルエラーと次のコードを、抱えている、と私は明確に定義されていなかったのか理解できません。cでMMFdataを操作するには?

#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"は定義されていません
ここで私は何が欠けていますか?あなたのプログラムで

答えて

0

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

は、関数の外文です。

ファイルスコープのステートメントを使用することはできません。このステートメントは、関数本体内にある必要があります。

また、OsFileNameという識別子は、プログラムで定義されていません。