visual c ++创建文本文件

时间:2010-10-06 15:10:49

标签: visual-studio-2010 visual-c++ c++-cli

如何创建文本文件?

CreateFile("1",            
               GENERIC_READ | GENERIC_WRITE,
               0,                    
               NULL,                 
               CREATE_NEW,        
               FILE_FLAG_OVERLAPPED, 
               NULL); 

  

1> ------ Build build:项目:test2,配置:调试Win32 ------   1 GT;测试2.cpp   1> c:\ users \kredkołamacz\ documents \ visual studio 2010 \ projects \ test2 \ test2 \ Form1.h(126):错误C2065:'GENERIC_READ':未声明的标识符   1> c:\ users \kredkołamacz\ documents \ visual studio 2010 \ projects \ test2 \ test2 \ Form1.h(126):错误C2065:'GENERIC_WRITE':未声明的标识符   1> c:\ users \kredkołamacz\ documents \ visual studio 2010 \ projects \ test2 \ test2 \ Form1.h(128):错误C2065:'NULL':未声明的标识符   1> c:\ users \kredkołamacz\ documents \ visual studio 2010 \ projects \ test2 \ test2 \ Form1.h(129):错误C2065:'CREATE_NEW':未声明的标识符   1> c:\ users \kredkołamacz\ documents \ visual studio 2010 \ projects \ test2 \ test2 \ Form1.h(130):错误C2065:'FILE_FLAG_OVERLAPPED':未声明的标识符   1> c:\ users \kredkołamacz\ documents \ visual studio 2010 \ projects \ test2 \ test2 \ Form1.h(131):错误C2065:'NULL':未声明的标识符   1> c:\ users \kredkołamacz\ documents \ visual studio 2010 \ projects \ test2 \ test2 \ Form1.h(125):错误C3861:'CreateFile':找不到标识符   ==========构建:0成功,1个失败,0个最新,0个跳过==========

1 个答案:

答案 0 :(得分:2)

.h.cpp个文件的顶部中包含以下Windows头文件:

#include <windows.h>

这应解决与未定义符号相关的问题,例如GENERIC_WRITECreateFile。正如另一张海报所提到的,您通常应该在.cpp文件中编写代码,只在头文件中声明常量或类,同时将方法实现与常规函数一起放在.cpp文件中。

一旦超出这一点,与CreateFileW相关的问题需要更多解释:

默认情况下,从Visual Studio模板生成的Windows应用程序链接到 Unicode (宽字符)版本的Windows API,并定义了UNICODE C / C ++预处理器宏来指示这一点。定义UNICODE时,预处理器将符号CreateFile定义为扩展为实际基础Windows函数名称CreateFileW,其中W后缀表示它是“宽字符”,即Unicode,功能。如果未定义UNICODE宏(可以通过各种Visual Studio项目设置覆盖),则CreateFile将扩展为CreateFileA符号,该符号是ANSI字符串版本的名称(函数的A用于ANSI)。 99%的时间你应该使用UNICODE的默认设置,因为所有现代版本的Windows都在内部使用Unicode字符。

由于CreateFileW采用Unicode字符串参数,您需要传递L"1"(即宽字符串文字)或使用TEXT宏(例如TEXT("1"))生成与是否定义UNICODE编译器开关相对应的正确字符串类型。

以下是有关TEXTlink的MSDN文章的链接。