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 при запуске программы вне отладчика? Нужно ли компилировать программу по-другому?
Любая помощь приветствуется. Спасибо.