ifile 在正常使用情况下为 0。当从托管类的 EventHandler 调用 DoesFileExist() 时,ifile 为 -1 (ENOENT)。
相同的方法,文件确实存在,但结果不同。
我们对混合模式事件消息传递有什么不了解?
BOOL DoesFileExist(CString sFile)
{
struct _stat c_file; // structs for file operations
errno_t err;
int ifile = _stat( sFile, &c_file );
if ( ifile EQ 0 ) // file exists.
{
return TRUE;
}
else // ifile = -1, check the error type...
{
_get_errno( &err );
if ( err NE ENOENT )
{
char tempchar[512];
sprintf_s(tempchar,"Error in DoesFileExist = %d File=",err);
CString sError = tempchar + sFile;
DEBUGMessage(sError);
}
}
return FALSE;
}