怪了怪了 fopen 函数 不起作用了
玩程序 的 我越来越玩回来了先上个图 有两个图 一个 是主函数 一个是功能函数 意思是获取 加载的程序的文件缓冲区指针,按理说很简单,用fopen函数代开程序获取文件结构 ,在用文件结构指针得到文件大小 ,再用fread函数 读取文件数据 把数据给一个设置的指针 并把指针返回,这样就完事了 ,但是就是怪了,程序以前能用,现在到程序执行到fopen函数执行哪里pFile文件指针结构依然是NULL(0),我用vc2010写的程序 ,我就怪了,但是程序生成后 点击生成的 程序能得到文件缓冲区地址,调试缺显示失败 怪了真怪了我上个图 你们看看 ,那个33程序 你可以随便写个 就像helloWode那样。 哪位朋友 解答下 哎把 获取 文件指针 改成获取文件长度就成功了 ,哎 c语言自己写函数 真累啊 有谁懂解释下 {:5_107:} 谦虚求学 发表于 2019-11-20 19:18哎把 获取 文件指针 改成获取文件长度就成功了 ,哎 c语言自己写函数 真累啊 有谁懂解释下 ...
不要单纯的发图片 把错误(或者不理解)的代码 也发出来 你好图片里pfile文件结构在fopen函数返回值是零就是第三张图片我打了调试失败还用笔花了个圈,上面几个图片一定把所有的代码都有啊 谦虚求学 发表于 2019-11-21 13:19
你好图片里pfile文件结构在fopen函数返回值是零就是第三张图片我打了调试失败还用笔花了个圈, ...
回答个问题还要照图片抄代码,是我我也不会回答你的问题.复制黏贴很难吗 bin554385863 发表于 2019-11-21 13:51
回答个问题还要照图片抄代码,是我我也不会回答你的问题.复制黏贴很难吗
{:5_96:}麻烦你了动动你小手 不是更好反正你还是要用vc编译码代码也不多 少吸一根烟 不是就出来了 {:5_109:} 谦虚求学 发表于 2019-11-21 19:48
麻烦你了动动你小手 不是更好反正你还是要用vc编译码代码也不多 少吸一根烟 不是就出 ...
我无语了
把代码直接粘贴出来岂不是更省事?? zltzlt 发表于 2019-11-21 20:07
我无语了
把代码直接粘贴出来岂不是更省事??
我认为我们帮他不值得
他这样的态度,我认为他应该另请高明
无语 +1
人造人 发表于 2019-11-21 21:38
我认为我们帮他不值得
他这样的态度,我认为他应该另请高明
赞同 人造人 发表于 2019-11-21 21:39
无语 +1
{:5_100:}别这样吗 本帖最后由 谦虚求学 于 2019-11-22 19:00 编辑
#include "stdafx.h"
#include "test.h"
int _tmain(int argc, _TCHAR* argv[])
{
char* lpszFile="C://33.exe";
LPVOID pFileBuffer=NULL;
int ww;
pFileBuffer=GetFileBuffer( lpszFile);
if(pFileBuffer)
{
printf("文件缓冲长度:%x\n",pFileBuffer);
}
else
{
printf("失败");
}
{:5_109:} 修改好了
#include "stdafx.h"
/***********************************************************
*将文件打开读到文件缓冲区,并获得文件缓冲区指针(地址)
*lpszFile 要打开的文件名
*返回值 是LPVOID 型
*
*************************************************************/
LPVOID GetFileBuffer(IN LPSTR lpszFile)
{
FILE *pFile=NULL;
int FileSize=NULL;
LPVOID pTempFileBuffer=NULL;
pFile=fopen(lpszFile,"rb+");
if(!pFile)
{
printf("not open");
fclose(pFile);
return 0;
}
fseek(pFile,0,SEEK_END);
FileSize=ftell(pFile);
fseek(pFile,0,SEEK_SET);
pTempFileBuffer=(LPVOID)malloc(FileSize);
if(!pTempFileBuffer)
{
printf("分配失败");
fclose(pFile);
return 0;
}
size_t n=fread(pTempFileBuffer,FileSize,1,pFile);
if(!n)
{
printf("读取数据失败");
free(pTempFileBuffer);
fclose(pFile);
return 0;
}
fclose(pFile);
//free(pTempFileBuffer);
returnpTempFileBuffer;//FileSize;
} 上面第一个 代码没修改完 发上去晕了我现在从发
#include "stdafx.h"
#include "test.h"
int _tmain(int argc, _TCHAR* argv[])
{
char* lpszFile="C://33.exe";
LPVOID pFileBuffer=NULL;
int ww;
pFileBuffer=GetFileBuffer( lpszFile);
if(pFileBuffer)
{
printf("文件缓冲长度:%x\n",pFileBuffer);
}
else
{
printf("失败");
}
页:
[1]