|
|
|
Утечка памяти
|
|||
|---|---|---|---|
|
#18+
Есть программа, в которой при нажатии на кнопку запускается поток, проверяющий наличие определенных файлов в определенных папках. Если файл найден, то в этом потоке вызывается функция (текст функции неже), отправляющая файл по почте, затем при возврате из функции этот файл удаляется. При сканировании каталогов память, отведенная программе не изменяется, когда же происходит отправка, то она увеличивается и не освобождается. текст функции void __fastcall ScanFolder::SendEmail() { MapiRecipDesc->ulReserved = 0; MapiRecipDesc->ulRecipClass = MAPI_TO; MapiRecipDesc->lpszName = RecipName.c_str(); MapiRecipDesc->lpszAddress = RecipAddress.c_str(); MapiRecipDesc->ulEIDSize = 0; MapiRecipDesc->lpEntryID = NULL; MapiFileDesc->ulReserved = 0; MapiFileDesc->flFlags = 0; MapiFileDesc->nPosition = 0; MapiFileDesc->lpszPathName = CurFile2.c_str(); MapiFileDesc->lpszFileName = NULL; MapiFileDesc->lpFileType = NULL; MapiMessage->ulReserved = 0; MapiMessage->lpszSubject = Subject.c_str(); MapiMessage->lpszNoteText = NoteText.c_str(); MapiMessage->lpszMessageType = NULL; MapiMessage->lpszDateReceived = NULL; MapiMessage->lpszConversationID = NULL; MapiMessage->flFlags = 0; MapiMessage->lpOriginator = NULL; MapiMessage->nRecipCount = 1; MapiMessage->lpRecips = MapiRecipDesc; MapiMessage->nFileCount = 1; MapiMessage->lpFiles = MapiFileDesc; MError = MapiSendMail(0, reinterpret_cast<unsigned int>(Application->Handle), *MapiMessage, MAPI_NEW_SESSION, 0); if (MError) FlagDelFile = 1; } в определении класса потока TMapiMessage* MapiMessage; TMapiRecipDesc* MapiRecipDesc; TMapiFileDesc* MapiFileDesc; Cardinal MError; в конструкторе класса MapiMessage = new TMapiMessage; MapiRecipDesc = new TMapiRecipDesc; MapiFileDesc = new TMapiFileDesc; в функции OnTerminate delete MapiMessage; delete MapiRecipDesc; delete MapiFileDesc; опыта у меня, конечно, маловато, но кажется, что при вызове функции MapiSendMail() происходит увеличение памяти, отведенной приложению, а затем эта память не освобождается. Как это победить я не знаю. Может подскажете (хотя бы - где искать). С уважением Сергей К. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 13:14 |
|
||
|
Утечка памяти
|
|||
|---|---|---|---|
|
#18+
она увеличивается каждый раз при отправке или только первый раз? (имеется ввиду не выходя из апликухи)? Если только один раз - все ok. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2003, 13:24 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32306027&tid=2035854]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 417ms |

| 0 / 0 |
