Здравствуйте MaximE, Вы писали:
ME>Здравствуйте Apostol_Andrew, Вы писали:
AA>>Пишу прогу под MFC использую класс CInternetSession AA>>вот примерный код
AA>>
AA>> CString m_text1;
AA>> if(!m_pSet2->IsOpen())m_pSet2->Open();
AA>>
AA>> CInternetSession* pInternetSession;
AA>> pInternetSession=new CInternetSession();]
ME>// зачем создавать CInternetSession в дин. памяти, а не на стеке?
AA>>
AA>> if(!pInternetSession)
AA>> {
AA>> AfxMessageBox("NOT INt",MB_OK);
AA>> return;
AA>> }
AA>> CStdioFile *pFile=NULL;
AA>> char* buffer;
AA>> buffer=new char[100000];
AA>>
AA>> pFile=pInternetSession->OpenURL(CString("http://www.transport-ua.com/bulletin.php?параметры"));
AA>> pFile->Read(buffer,100000);
AA>> m_text1=CString(buffer,100000);
ME>// достаточно text1 = buffer
AA>> while(...)
AA>> {
AA>> delete(buffer);
ME>// нужно delete[] buffer
AA>> pFile->Close();
AA>> delete(pFile);
ME>// зачем скобки?
AA>> pFile=pInternetSession->OpenURL(CString("http://www.transport-ua.com/bulletin.php?параметры"));
AA>> buffer=new char[100000];
AA>> pFile->Read(buffer,100000);
AA>> m_text1=CString(buffer,100000);
ME>// достаточно text1 = buffer
AA>>
AA>> }
AA>> pFile->Close();
AA>> pInternetSession->Close();
AA>> delete(buffer);
ME>// нужно delete[] buffer
AA>> delete(pInternetSession);
ME>// убери скобки; создавал бы на стеке - не пришлось бы удалять.
AA>> delete(pFile);
ME>// убери скобки
ME>
AA>> AfxMessageBox("Well Download",MB_OK);
AA>>
Здравствуйте MaximE, Вы писали:
ME>Не обязательно из-за утечек. Хотя, в этом коде выделяется достаточно большие массивы, а освобождается только первый элемент.
ME>Интересно, чел хоть раз DEBUG версию запускал? У него должно было вывалить кучу неосвобожденных normal block.
Здравствуйте small_cat, Вы писали:
SC>Здравствуйте MaximE, Вы писали:
ME>>Не обязательно из-за утечек. Хотя, в этом коде выделяется достаточно большие массивы, а освобождается только первый элемент.
ME>>Интересно, чел хоть раз DEBUG версию запускал? У него должно было вывалить кучу неосвобожденных normal block.
SC>Кстати, интересный момент. Я этот момент решил проверить (http://rsdn.ru/forum/?mid=118921
) SC>По крайней мере в седьмом VC утечек нет. Т.е. формально можно говорить лишь о неопределенном поведении в конкретной реализации.
Да но проблема не в освобождении памяти
на другом компе на первый раз сразу же прога обламывается
виснет на pFile=pInternetSession->OpenURL(CString("http://www.transport-ua.com/bulletin.php?параметры"));
Спасибо за ответ про освобождение памяти но дело не в этом
Может что-то на том сервере?
Return Value
Returns a file handle for FTP, GOPHER, HTTP, and FILE-type Internet services only.
Returns NULL if parsing was unsuccessful.
The pointer that OpenURL returns depends on pszURL's type of service.
The table below illustrates the possible pointers OpenURL can return.
URL type Returns
file:// CStdioFile*
http:// CHttpFile*
gopher:// CGopherFile*
ftp:// CInternetFile*
Т.е ты запросто можешь NULL выловить и как следствие AV
- Простите, профессор, не пса, а когда он уже был человеком.
— То-есть он говорил? Это еще не значит быть человеком. (с) Булгаков
Здравствуйте small_cat, Вы писали:
SC>Здравствуйте Apostol_Andrew, Вы писали:
SC>Виснет до или после? Может, сервак тормозит тот со страшной силой.
Кстати, ты я вижу делаешь вот так SC> SC>
SC>Что не есть безопасно. См. выдержку из MSDN
SC> SC>
SC>Return Value
SC>Returns a file handle for FTP, GOPHER, HTTP, and FILE-type Internet services only.
SC>Returns NULL if parsing was unsuccessful.
SC>The pointer that OpenURL returns depends on pszURL's type of service.
SC>The table below illustrates the possible pointers OpenURL can return.
SC>URL type Returns
SC>file:// CStdioFile*
SC>http:// CHttpFile*
SC>gopher:// CGopherFile*
SC>ftp:// CInternetFile*
SC>
SC>Т.е ты запросто можешь NULL выловить и как следствие AV
Спосибо за инфу(ведь я первый раз с этим сталкиваюсь)
Попробую через HTTP