Получил при компиляции файл main.SUP следующего содержания:
//SUPPRESSIONPROJ:main //VERSION:5.00 //ENABLE:Yes ignore param 1 KERNEL32.DLL:WriteFile in module EXE ignore failure KERNEL32.DLL:WriteFile in everywhere ignore param 1 KERNEL32.DLL:ReadFile in module EXE
Что это значит?
Запустив BoundsChecker получаю кучу Invalid argument HeapAlloc, argument 1, HANDLE:0x00000000 потом Invalid argument WriteFile, argument 1, HFILE: 0x00010001 API failure: WriteFile returned 0x00000000. LastError: Неверный дескриптор. (6) Invalid argument: ReadFile, argument 1, HFILE: 0x00000000 API failure: ReadFile returned 0x00000000. LastError: Неверный дескриптор. (6)
| Код | #include <iostream> #include <fstream> #include <ctype> #include <windows> #include <string> #include "main.h"
using namespace::std;
string Title(ifstream& file) { string teg1 = "<title>", teg2 = "</title>", TitleString, Space=" "; char buffer[2048];
file.getline(buffer,sizeof(buffer));
if(strstr(buffer,teg1.c_str())!=NULL) { TitleString=buffer; if(strstr(buffer,teg2.c_str())!=NULL) { TitleString=TitleString.substr(TitleString.find(teg1)+teg1.size(),TitleString.find(teg2)-(TitleString.find(teg1)+teg1.size())); // cout<<TitleString<<endl; } else { file.getline(buffer,sizeof(buffer)); TitleString+=Space+buffer; TitleString=TitleString.substr(TitleString.find(teg1)+teg1.size(),TitleString.find(teg2)-(TitleString.find(teg1)+teg1.size())); // cout<<TitleString<<endl; } } else { string TEG1, TEG2; for(int i=0; i<teg1.size(); ++i) TEG1+=toupper(teg1[i]); if(strstr(buffer,TEG1.c_str())!=NULL) { TitleString=buffer;
for(int i=0; i<teg2.size(); ++i) TEG2+=toupper(teg2[i]);
if(strstr(buffer,TEG2.c_str())!=NULL) { TitleString=TitleString.substr(TitleString.find(TEG1)+TEG1.size(),TitleString.find(TEG2)-(TitleString.find(TEG1)+TEG1.size())); // cout<<TitleString<<endl; } else { file.getline(buffer, sizeof(buffer)); TitleString+=Space+buffer; TitleString=TitleString.substr(TitleString.find(TEG1)+TEG1.size(),TitleString.find(TEG2)-(TitleString.find(TEG1)+TEG1.size())); // cout<<TitleString<<endl; } } }
string sim1=" ";
while(TitleString.find(sim1)<TitleString.size()) { cout<<TitleString.find(sim1)<<endl; TitleString=TitleString.replace(TitleString.find(sim1), sim1.size(), " "); cout<<TitleString<<endl; } return TitleString; }
int main() { cout<<"‚ўҐ¤ЁвҐ Ё¬п д ©« : "<<endl; string OpenFile; cin>>OpenFile; cout<<"ЋвЄалў Ґ¬ д ©«..."<<endl; ifstream file(OpenFile.c_str());
if(!file) { cout<<"?Ґ ®вЄалў Ґвбп д ©«"<<endl; return 0; } else cout<<"” ©« ®вЄалв!"<<endl;
while(file) { string Res=Title(file);
if(Res.size()!=0) MessageBox(NULL, Res.c_str(), " ", MB_OK|MB_ICONINFORMATION); } return 0; }
| |