code:FILE *file = _wfopen(szName, TEXT("rb"));
就这么一条代码,报这么个恶心错,大哥们帮忙看看,怎么下手处理呢?
最后的10分,晕....
23 个解决方案
#1
贴上下文看看
#2
没有#include <stdio.h>吧
#3
//拼接文件名路径得到当前的目录
int iNameLength;
TCHAR szName[MAX_PATH+2];
iNameLength = GetModuleFileName(g_hInstDll, szName, sizeof (szName));
while (szName[--iNameLength] != '\\');
szName[iNameLength + 1] = NULL;
_tcscat(szName,TEXT("MMDic.dat"));
//得到库文件
FILE *file = _wfopen(szName, TEXT("rb"));//<--------------报错的恶心地方
if(file == NULL)
{
MessageBox(m_hwndParent,TEXT ("Can't find MMDic"),TEXT ("ERR"), MB_OK);
return E_FAIL;
}
fseek(file, 0, SEEK_END);
int iLen = ftell(file);
g_SipStatus.pFileBuffer = (char*)malloc(iLen);
fseek(file, 0, SEEK_SET);
fread(g_SipStatus.pFileBuffer, 1, iLen, file);
fclose(file);
int iNameLength;
TCHAR szName[MAX_PATH+2];
iNameLength = GetModuleFileName(g_hInstDll, szName, sizeof (szName));
while (szName[--iNameLength] != '\\');
szName[iNameLength + 1] = NULL;
_tcscat(szName,TEXT("MMDic.dat"));
//得到库文件
FILE *file = _wfopen(szName, TEXT("rb"));//<--------------报错的恶心地方
if(file == NULL)
{
MessageBox(m_hwndParent,TEXT ("Can't find MMDic"),TEXT ("ERR"), MB_OK);
return E_FAIL;
}
fseek(file, 0, SEEK_END);
int iLen = ftell(file);
g_SipStatus.pFileBuffer = (char*)malloc(iLen);
fseek(file, 0, SEEK_SET);
fread(g_SipStatus.pFileBuffer, 1, iLen, file);
fclose(file);
#4
貌似_wfopen()的问题,szName参数的类型对吗?
#5
Jinhao 大哥,加了头文件了,问题不在这块。
#6
FILE的问题?
#7
觉得问题还是没有出在这些代码里面
#8
嗯~
#9
不太熟悉wfopen函数
#10
谢谢各位大哥,我再查查资料吧……刚才公司一个高人来现场指导也没解决。
#11
FILE file = _wfopen(szName, TEXT("rb")); //这样试试
#12
应该是工程设置或者也许重新定义了FILE结构什么的
_wfopen(szName, TEXT("rb"));
直接这样写,报错吗
_wfopen(szName, TEXT("rb"));
直接这样写,报错吗
#13
_tcscat(szName,TEXT("MMDic.dat"));
//////这中间没有其他的代码了吗?
//得到库文件
FILE *file = _wfopen(szName, TEXT("rb"));// <--------------报错的恶心地方
你检查一下.正代码之前,有没有少写了什么,比如) ; #endif 这些之类的.报这个错的原因就是 FILE * file 这句编译器没有把它当作声明一个file,而是 FILE 乘 file.
//////这中间没有其他的代码了吗?
//得到库文件
FILE *file = _wfopen(szName, TEXT("rb"));// <--------------报错的恶心地方
你检查一下.正代码之前,有没有少写了什么,比如) ; #endif 这些之类的.报这个错的原因就是 FILE * file 这句编译器没有把它当作声明一个file,而是 FILE 乘 file.
#14
这样不报错!
#15
你自定义的头文件中FILE大概被重新定义了。。。。请认真查查有没有类似
#define FILE xxx
的地方
#define FILE xxx
的地方
#16
你定义的位置不对,纯C程序不能放在程序段中,要放在程序段头定义。
#17
我也遇到了这个问题,我的代码中,进行了两次对不同的两个文件的操作,一次是读出,一次是写入。
但是奇怪的是,如果将两个操作分离即:只读或者只写都不会报错。现在还没搞懂这到底是怎么了!
但是奇怪的是,如果将两个操作分离即:只读或者只写都不会报错。现在还没搞懂这到底是怎么了!
#18
刚发完帖子,猛地想到了,16楼说的有道理,的确是要放在程序段头(也就是说,一其他关于操作的函数都必须在此定义之后)现在已经通过了。终于可以睡觉啦。
在此 也感谢16楼的兄弟!
在此 也感谢16楼的兄弟!
#19
VS 2008 真恶搞~ 搞半天我还以为哪里出问题了呢。
#20
刚刚也碰到这个问题 太雷人啦~~竟然要放到程序段头定义~~
#21
真的是这样。。。C还是不一般
#22
我是来拜谢16楼的,帮了大忙啊,今天我也遇到这个问题了,多谢多谢
#23
16楼正解啊,解决了我的问题,谢谢。。。
好变态的纯C
好变态的纯C
#1
贴上下文看看
#2
没有#include <stdio.h>吧
#3
//拼接文件名路径得到当前的目录
int iNameLength;
TCHAR szName[MAX_PATH+2];
iNameLength = GetModuleFileName(g_hInstDll, szName, sizeof (szName));
while (szName[--iNameLength] != '\\');
szName[iNameLength + 1] = NULL;
_tcscat(szName,TEXT("MMDic.dat"));
//得到库文件
FILE *file = _wfopen(szName, TEXT("rb"));//<--------------报错的恶心地方
if(file == NULL)
{
MessageBox(m_hwndParent,TEXT ("Can't find MMDic"),TEXT ("ERR"), MB_OK);
return E_FAIL;
}
fseek(file, 0, SEEK_END);
int iLen = ftell(file);
g_SipStatus.pFileBuffer = (char*)malloc(iLen);
fseek(file, 0, SEEK_SET);
fread(g_SipStatus.pFileBuffer, 1, iLen, file);
fclose(file);
int iNameLength;
TCHAR szName[MAX_PATH+2];
iNameLength = GetModuleFileName(g_hInstDll, szName, sizeof (szName));
while (szName[--iNameLength] != '\\');
szName[iNameLength + 1] = NULL;
_tcscat(szName,TEXT("MMDic.dat"));
//得到库文件
FILE *file = _wfopen(szName, TEXT("rb"));//<--------------报错的恶心地方
if(file == NULL)
{
MessageBox(m_hwndParent,TEXT ("Can't find MMDic"),TEXT ("ERR"), MB_OK);
return E_FAIL;
}
fseek(file, 0, SEEK_END);
int iLen = ftell(file);
g_SipStatus.pFileBuffer = (char*)malloc(iLen);
fseek(file, 0, SEEK_SET);
fread(g_SipStatus.pFileBuffer, 1, iLen, file);
fclose(file);
#4
貌似_wfopen()的问题,szName参数的类型对吗?
#5
Jinhao 大哥,加了头文件了,问题不在这块。
#6
FILE的问题?
#7
觉得问题还是没有出在这些代码里面
#8
嗯~
#9
不太熟悉wfopen函数
#10
谢谢各位大哥,我再查查资料吧……刚才公司一个高人来现场指导也没解决。
#11
FILE file = _wfopen(szName, TEXT("rb")); //这样试试
#12
应该是工程设置或者也许重新定义了FILE结构什么的
_wfopen(szName, TEXT("rb"));
直接这样写,报错吗
_wfopen(szName, TEXT("rb"));
直接这样写,报错吗
#13
_tcscat(szName,TEXT("MMDic.dat"));
//////这中间没有其他的代码了吗?
//得到库文件
FILE *file = _wfopen(szName, TEXT("rb"));// <--------------报错的恶心地方
你检查一下.正代码之前,有没有少写了什么,比如) ; #endif 这些之类的.报这个错的原因就是 FILE * file 这句编译器没有把它当作声明一个file,而是 FILE 乘 file.
//////这中间没有其他的代码了吗?
//得到库文件
FILE *file = _wfopen(szName, TEXT("rb"));// <--------------报错的恶心地方
你检查一下.正代码之前,有没有少写了什么,比如) ; #endif 这些之类的.报这个错的原因就是 FILE * file 这句编译器没有把它当作声明一个file,而是 FILE 乘 file.
#14
这样不报错!
#15
你自定义的头文件中FILE大概被重新定义了。。。。请认真查查有没有类似
#define FILE xxx
的地方
#define FILE xxx
的地方
#16
你定义的位置不对,纯C程序不能放在程序段中,要放在程序段头定义。
#17
我也遇到了这个问题,我的代码中,进行了两次对不同的两个文件的操作,一次是读出,一次是写入。
但是奇怪的是,如果将两个操作分离即:只读或者只写都不会报错。现在还没搞懂这到底是怎么了!
但是奇怪的是,如果将两个操作分离即:只读或者只写都不会报错。现在还没搞懂这到底是怎么了!
#18
刚发完帖子,猛地想到了,16楼说的有道理,的确是要放在程序段头(也就是说,一其他关于操作的函数都必须在此定义之后)现在已经通过了。终于可以睡觉啦。
在此 也感谢16楼的兄弟!
在此 也感谢16楼的兄弟!
#19
VS 2008 真恶搞~ 搞半天我还以为哪里出问题了呢。
#20
刚刚也碰到这个问题 太雷人啦~~竟然要放到程序段头定义~~
#21
真的是这样。。。C还是不一般
#22
我是来拜谢16楼的,帮了大忙啊,今天我也遇到这个问题了,多谢多谢
#23
16楼正解啊,解决了我的问题,谢谢。。。
好变态的纯C
好变态的纯C