VC++6.0.....0x004040c1指令引用的0x00000010内存,该内存不能为read

时间:2021-04-28 23:48:02
void CBody::Call(CBody body)
{
list<CPlane>::iterator it_plane;
list<CFace>::iterator it_face;
CPlane PlaneDis;
CFace tmpface;
 for(it_plane=body.Plane_list.begin();it_plane!=body.Plane_list.end();it_plane++)
 {
 WriteFile(PlaneDis);
//以下是调用mod文件
 CString gv_path,path0;
 TCHAR szFilepath1[MAX_PATH+1];
 GetModuleFileName(NULL,szFilepath1,MAX_PATH);
 (_tcsrchr(szFilepath1,_T('\\')))[0] = 0;
 (_tcsrchr(szFilepath1,_T('\\')))[0] = 0; 
 gv_path.Format(_T("%s\\gv.exe"),szFilepath1);
  ShellExecute(NULL,"open","gv.exe",gv_path,NULL,SW_SHOWNORMAL);//调用exe,一运行到这里就弹出那个对话框是咋回事啊
 TCHAR szFilepath0[MAX_PATH+1];
 GetModuleFileName(NULL,szFilepath0,MAX_PATH);
 (_tcsrchr(szFilepath0,_T('\\')))[0]=0;
 (_tcsrchr(szFilepath0,_T('\\')))[0]=0;
 path0.Format(_T("%s\\data\\pointdata.sur"),szFilepath0);

 ifstream  outfile(path0,ios::trunc);//定义一个文件
 if(!outfile)cerr<< "error";
//生成了sur文件
    ReadFile(outfile);
       Plane_Quad.Face_list.push_back(face_QUAD);
       face_QUAD.Inner_loops.clear();
       Plane_Tria.Face_list.push_back(face_TRIA);
       face_TRIA.Inner_loops.clear();
    }
   
}
求大神帮我看看怎么回事?

6 个解决方案

#1


ShellExecute(0,"open","NOTEPAD.EXE","","",SW_SHOWNORMAL);
尝试调用自带记事本,如果成功,则可能是gv_path参数问题
如果失败,那大概是你其他代码的问题!

#2


cstring.format函数中不能传入空指针,否则会出错

#3


引用 1 楼 jianwen0529 的回复:
ShellExecute(0,"open","NOTEPAD.EXE","","",SW_SHOWNORMAL);
尝试调用自带记事本,如果成功,则可能是gv_path参数问题
如果失败,那大概是你其他代码的问题!


那请问下,该怎么修改呢,我的记事本调用成功。。

#4


引用 2 楼 wd0033 的回复:
cstring.format函数中不能传入空指针,否则会出错

感觉调用文件挺难的。。。我不懂

#5


引用 1 楼 jianwen0529 的回复:
ShellExecute(0,"open","NOTEPAD.EXE","","",SW_SHOWNORMAL);
尝试调用自带记事本,如果成功,则可能是gv_path参数问题
如果失败,那大概是你其他代码的问题!

然后我测试了这样子, ShellExecute(NULL,"open","gv.exe",NULL,NULL,SW_SHOWNORMAL);还是出现了gv.exe应用程序错误,说是什么内存不足。不能是read。。

#6


ShellExecute(NULL,"open","gv.exe",“”,"",SW_SHOWNORMAL);
试试

#1


ShellExecute(0,"open","NOTEPAD.EXE","","",SW_SHOWNORMAL);
尝试调用自带记事本,如果成功,则可能是gv_path参数问题
如果失败,那大概是你其他代码的问题!

#2


cstring.format函数中不能传入空指针,否则会出错

#3


引用 1 楼 jianwen0529 的回复:
ShellExecute(0,"open","NOTEPAD.EXE","","",SW_SHOWNORMAL);
尝试调用自带记事本,如果成功,则可能是gv_path参数问题
如果失败,那大概是你其他代码的问题!


那请问下,该怎么修改呢,我的记事本调用成功。。

#4


引用 2 楼 wd0033 的回复:
cstring.format函数中不能传入空指针,否则会出错

感觉调用文件挺难的。。。我不懂

#5


引用 1 楼 jianwen0529 的回复:
ShellExecute(0,"open","NOTEPAD.EXE","","",SW_SHOWNORMAL);
尝试调用自带记事本,如果成功,则可能是gv_path参数问题
如果失败,那大概是你其他代码的问题!

然后我测试了这样子, ShellExecute(NULL,"open","gv.exe",NULL,NULL,SW_SHOWNORMAL);还是出现了gv.exe应用程序错误,说是什么内存不足。不能是read。。

#6


ShellExecute(NULL,"open","gv.exe",“”,"",SW_SHOWNORMAL);
试试