Я использую функцию gethostbyname () обычным образом ...
iaHost.s_addr = inet_addr(lpServerName);
if (iaHost.s_addr == INADDR_NONE)
{
// Wasn't an IP address string, assume it is a name
lpHostEntry = 0;
lpHostEntry = gethostbyname(lpServerName);
}
для доступа к моему веб-сайту и возврата информации. Переменная "lpServerName" может быть любым хостом, например, "google.com" или обратной связью, "127.0.0.1".
Моя система: Windows x64 или x32 (не имеет значения, что возникает та же ошибка), работающая в системе AMD Opteron, XAMPP на моей машине, и я использую ее для целей отладки, мой компилятор - Microsoft Visual c ++ 2005.
Вот проблема: когда я использую адрес обратной связи, приведенный выше код работает нормально. Когда я пытаюсь получить доступ к внешнему веб-сайту на моем компьютере, я получаю следующую ошибку: «Windows сработала точку останова в test_gethostbyname.exe. Это может быть связано с повреждением кучи и указывает на ошибку в test_gethostbyname.exe или любую из загруженных библиотек. Окно вывода может содержать больше диагностической информации ". Программа test_gethostbyname.exe содержит только те части кода гораздо более крупного проекта, которые применяются для доступа в Интернет. Таким образом, я не думаю, что куча искажается из-за того, что я сделал. Я пробовал команду "getaddrinfo" с теми же результатами. Я искал в Интернете любую информацию по этой проблеме без радости (кроме ошибок сегментации в системах Unix).
Кто-нибудь знает о какой-либо проблеме с этой командой, которая могла бы вызвать эту ошибку?
Заранее спасибо,
Jay