Хорошо, это озадачивает меня ... Код ниже находится в DLL, и когда мое консольное приложение вызывает этот код, оно внезапно выдает нарушение прав доступа в строке delete[] lpBuffer
.Я использовал этот код весь день и не изменил его вообще.До сих пор это работало просто отлично.
Сообщение о нарушении прав доступа
Необработанное исключение в 0x6948b1a5 в rhcopy.exe: 0xC0000005: Место чтения нарушения доступа 0x4de1c37f.
Код библиотеки
#define MAX_PACKET_SIZE 0x3FFF
DWORD MyClass::GetFile( LPCSTR lpszRemoteFile, LPCSTR lpszLocalFile )
{
LPBYTE lpBuffer = NULL;
// ...
lpBuffer = new BYTE[MAX_PACKET_SIZE];
// ...
if( NULL != lpBuffer )
delete[] lpBuffer;
// ...
}
Я что-то не так делаю?
С другой стороны: я думал о преобразовании lpBuffer
в вектор.Мнения?
изменить
Я хочу поблагодарить вас, ребята, за вашу помощь!Но, видимо ... Проблема не в этом.На самом деле проблема заключается в операторе printf()
в вызывающем приложении, который возникает сразу после вызова GetFile(...)
.Я прошу прощения за путаницу.Казалось бы, инструмент отладки Microsoft указывает не на строку, вызвавшую ошибку, а на последнюю строку, которая была выполнена.Я проголосовал, чтобы закрыть вопрос.