try
{
pConnect = sess->GetFtpConnection(ftpArgs.host, ftpArgs.userName, ftpArgs.password, port, FALSE );
}
catch (CInternetException* pEx)
{
loginErrCode = GetLastError();
printf("loginErrCode: %d\n", loginErrCode);
if(loginErrCode == 12013)
{
printf("Incorrect user name!\n");
exit(0);
}
else if(loginErrCode == 12014)
{
printf("Incorrect password!\n");
exit(0);
}
else if(loginErrCode == 12007)
{
printf("Incorrect server name!\n");
exit(0);
}
else //display all other errors
{
TCHAR sz[1024];
pEx->GetErrorMessage(sz, 1024);
printf("ERROR! %s\n, sz);
pEx->Delete();
exit(0);
}
Когда этот код запускается из Visual Studio с преднамеренно неправильным именем пользователя, GetLastError() возвращает 12014 (ожидается).
Однако при запуске того же кода из командной строки (с таким же неверным именем пользователя) GetLastError() возвращает 2? (GetErrorMessage() возвращает неверный пароль)
Я не понимаю, в чем разница.
Кроме того, я запускал программу из командной строки, прикрепляя к ней процесс в Visual Studio, для отладки. Я получил 12014.
Всякий раз, когда задействован отладчик, я получаю 12014. Когда я запускаю исполняемый файл «обычно» с теми же параметрами, я получаю 2.
Коды ошибок WinInet не обнаруживаются при запуске программы вне отладчика? Нужно ли компилировать программу по-другому?
Любая помощь приветствуется. Спасибо.