代码如下:
CUnzip *pUnzip=new CUnzip( "temp.zip" );
BOOL bExtract=FALSE;
try
{
::DeleteFile("temp.sx");
pUnzip->SwapSize("temp.sx");
bExtract=TRUE;
MessageBox("解压成功");
delete pUnzip;
}
catch( CZipException e )
{
CString s;
s.Format("解压错误:%s",e.GetString());
MessageBox(s);
delete pUnzip;
return;
}
问题如下:
可以解压,但是不退出程序进行第二次解压时(temp.zip已经改变),出现异常:"解压错误:Problem while unzipping file"
退出程序,重新解压没有问题.
请问,是何问题,如何解决?
CUnzip *pUnzip=new CUnzip( "temp.zip" );
BOOL bExtract=FALSE;
try
{
::DeleteFile("temp.sx");
pUnzip->SwapSize("temp.sx");
bExtract=TRUE;
MessageBox("解压成功");
delete pUnzip;
}
catch( CZipException e )
{
CString s;
s.Format("解压错误:%s",e.GetString());
MessageBox(s);
delete pUnzip;
return;
}
问题如下:
可以解压,但是不退出程序进行第二次解压时(temp.zip已经改变),出现异常:"解压错误:Problem while unzipping file"
退出程序,重新解压没有问题.
请问,是何问题,如何解决?
解决方案 »
- ShellExecuteEx和双击执行,结果不完全一致
- MFC的问题
- 创建的CComboBoxEx,设置CImageList后,CEdit里不显示图像?
- vc6如何调用.net的漂亮控件吗??
- 关于模板: 动态分配模板,Debug可以编译,Release下提示莫名其妙的错误!
- vc程序编译通过,链接时出现cannot open file "mfc42ud.lib"怎么解决
- SendMessage
- 有谁知道如何得到某个应用程序的句柄
- send 在win2003中的问题?
- 哪里可以找到关于线条类型PS_SOLID,PS_DASH这些的定义??
- 聖誕節快樂,提一個傳統的問題!關於new和delete的使用超級疑惑!
- ln函数怎么表示?需要什么头文件?
尤其全局和静态变量
如果你的分析的对的话,dll文件无法修改的话,想用CUnzip类,把上面这行:
CUnzip*pUnzip=new CUnzip( "temp.zip" );
改成:
CUnzip pUnzip( "temp.zip" );
后面的代码也跟着改一下,这样把战场从堆中移到栈中来的话,试试可以吗?
在new之前,我就是这样的.
后来我才改为用new的
有源代码,我正在分析
如果你要,留下个E-MAIL,我将改好后的发给你,你自己去对比找一下改的是哪儿