Добрый день всем!
Возникла у меня проблема.
Есть программа (обычная аппликуха, для меня является черным ящиком), которая вызывает мою длл-ку.
Моя длл-ка ранее работала хорошо.
После серии серьезных изменений в длл стали возникать время от времени креши.
"An exception (c00000005) occured during DLLEntryPoint or DLL main in module mylib.dll"
или
"The application, ExtProg.exe, generated an application error
The error occurred on 07/04/2008 @ 14:07:04.743
The exception generated was c0000005 at address 01BEA2C0 (mylib!)"
Проблема нестабильна. Натыкал в разные места логи и начал гонять прогу.
В том числе обрамил все вызовы внешних экспортируемых функций логами
Например:
int WINAPI SendCommandToServerEx(HSESSION hSession, int command, const BYTE *data, int length, BOOL answer,
int answerErrorCode, const char* answerErrorMsg)
{
WriteLogExternal(logname, "SendCommandToServerEx: begin", FAppLogCS, true, Flot, lotImportant);
int res = g_pClient->SendCommandToServerEx(command, data, length, answer, answerErrorCode, answerErrorMsg);
WriteLogExternal(logname, "SendCommandToServerEx: end", FAppLogCS, true, Flot, lotImportant);
return res;
}
В последнее время вижу, что исключения возникают как-будто вне моих экспортируемых функций, например, "SendCommandToServerEx: end" будет последней строкой в логе, дальше уже исключение.
Как такое может быть? Ну не return же вызвал исключение! Как это отловить?
Помогите, сроки горят.
Длл-ка написана на Visual Studio 2008.