中易网

关于CreateFile函数

答案:3  悬赏:10  
解决时间 2021-03-18 15:15
CreateFile
我用QT编译时为什么会报错呢
D:\project\Qt\123456\main.cpp:14: 错误:cannot convert 'const char*' to 'const WCHAR*' for argument '1' to 'void* CreateFileW(const WCHAR*, DWORD, DWORD, _SECURITY_ATTRIBUTES*, DWORD, DWORD, void*)'

hFile = CreateFile("5.txt",GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);

这样有错么?
最佳答案
不行的话你就强制写CreateFileA而不是CreateFile吧。
CreateFile有两个版本,CreateFileA和CreateFileW。
只写CreateFile的话它会根据工程的设置自动选择一个来用。

另外我赞成 _T 宏的方式,这也是让编译器自动选择一种字符串的表示方式来用
全部回答
楼主太不厚道,明明是我新回答的! 常量字符串默认是char*,你的代码需要强制类型转换,请用如下方法试试: hFile = CreateFile(L"5.txt",GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL); 或者 hFile = CreateFile(_T("5.txt"),GENERIC_WRITE,0,NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,NULL);
你找的是c++里的创建文件的函数,在c#里应该是用下面的 -------------------------------------------------------------------------------------- file 类 提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 filestream 对象。 继承层次结构 system.object system.io.file 命名空间: system.io 程序集: mscorlib(在 mscorlib.dll 中) 语法 c# public static class file file 类型公开以下成员。 公共方法静态成员 create(string) 在指定路径中创建或覆盖文件。 公共方法静态成员 create(string, int32) 创建或覆盖指定的文件。 公共方法静态成员 create(string, int32, fileoptions) 创建或覆盖指定的文件,并指定缓冲区大小和一个描述如何创建或覆盖该文件的 fileoptions 值。 公共方法静态成员 create(string, int32, fileoptions, filesecurity) 创建或覆盖具有指定的缓冲区大小、文件选项和文件安全性的指定文件。 下面的示例在指定路径中创建一个文件,将一些信息写入该文件,再从文件中读取。 using system; using system.io; using system.text; class test { public static void main() { string path = @"c:\temp\mytest.txt"; try { // delete the file if it exists. if (file.exists(path)) { // note that no lock is put on the // file and the possibility exists // that another process could do // something with it between // the calls to exists and delete. file.delete(path); } // create the file. using (filestream fs = file.create(path)) { byte[] info = new utf8encoding(true).getbytes("this is some text in the file."); // add some information to the file. fs.write(info, 0, info.length); } // open the stream and read it back. using (streamreader sr = file.opentext(path)) { string s = ""; while ((s = sr.readline()) != null) { console.writeline(s); } } } catch (exception ex) { console.writeline(ex.tostring()); } } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
苏州那里有外贸服装批发?想开外贸女装店!
结婚跟拍多少钱 婚礼跟拍摄影一般多少钱
川府琚老火锅在什么地方啊,我要过去处理事情
泰宁县气象站点的经纬度坐标
手机的钢化玻璃膜是不是贴上触屏就不会看得见
俗称陕西茅台的西风酒是西风什么酒?
止咳煲什么汤?
求个种子,文章标题是“广东的移民张先生 在
用洗洁精刷碗会不会加重鳞屑角化型手癣/?
上宝峪村我想知道这个在什么地方
为什么刚买回来的狗拉的屎那么稀
冰箱里的温度调节档代表什么意思?上面的数字
姓钟的男孩名字霸气
红米note wifi 可以上网 但是数据链接上不去
我身高178 体重114 腰围80cm 穿几尺几的裤子
推荐资讯
张家界淡季门票价格,张家界什么时候是旅游淡
如果你旁边总有一个人跟着你,阴魂不散那种,
巢湖哪里有卖情侣装
把家猫放到宠物店托管一个月大约多少钱
装修必须要用工人干的活有哪些啊
山西卢牙村离西安有多远
莱莉餐厅地址在什么地方,想过去办事
cpu散热硅脂要哪种好呢
梦幻西游中的60级剧情有什么隐藏的剧情啊
使用罐装液化气时,有吱吱响声,是否正常 ?
草本萃取的护肤品,我应该选哪个牌子?
个人独资企业的财产是不是个人财产
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?