RString CrashChildGetModuleBaseName( HMODULE hMod ) { write( _fileno(stdout), &hMod, sizeof(hMod) ); int iFD = fileno(stdin); int iSize; if( !ReadFromParent(iFD, &iSize, sizeof(iSize)) ) return "???"; RString sName; char *pBuf = sName.GetBuffer( iSize ); if( !ReadFromParent(iFD, pBuf, iSize) ) return "???"; sName.ReleaseBuffer( iSize ); return sName; }
RString CrashChildGetModuleBaseName( HMODULE hMod ) { write( _fileno(stdout), &hMod, sizeof(hMod) ); int iFD = fileno(stdin); int iSize; if (!ReadFromParent(iFD, &iSize, sizeof(iSize))) { return "???"; } RString sName; char *buffer = new char[iSize + 1]; std::fill(buffer, buffer + iSize + 1, '\0'); if (!ReadFromParent(iFD, buffer, iSize)) { sName = "???"; } else { sName = buffer; } delete[] buffer; return sName; }