Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

Указатели   Найти похожие ветки 

 
qwerty2   (2003-12-01 14:05) [0]

Задача такая: определить имя текущего хоста.
Есть такой код.
var
c:pchar;
begin
if GetHostName(c,255)>0 then
showmessage(inttostr(wsagetlasterror));// проверка на ошибку
showmessage(c); // в с должно находиться имя хоста.
после его выполнения выдается какой то бред - набор нечитаемых символов.
А вот аналогичный код на C который работает.
char FAR * name=new char(255);
int namelen=255;
gethostname (name,namelen);
MessageBox(name,"",0);
Сама функция обявлена так: gethostname(name:pchar;len:Integer);
что я делаю не так?


 
Reindeer Moss Eater   (2003-12-01 14:06) [1]

в аналогичном коде на си под результат выделена память, а у тебя - нет


 
Silver Alex   (2003-12-01 14:15) [2]

var
c: array[0..255] of char;
begin
if GetHostName(c,sizeof(name))>0 then


 
Silver Alex   (2003-12-01 14:16) [3]

сорри, конечно вот так

var
c: array[0..255] of char;
begin
if GetHostName(c,sizeof(с))>0 then


 
qwerty2   (2003-12-01 14:49) [4]

Reindeer Moss Eater © (01.12.03 14:06) [1]

c:=allocmem(255) - ничего не дало. с - пустая строка как до выполнения GetHostName так и после.

Silver Alex © (01.12.03 14:16) [3]
до выполнения GetHostName с забита мусором. После выполнения ее содержимое, ни один байт, не изменяется, словно если б с передавалось не по ссылке а по значению.


 
Digitman   (2003-12-01 14:53) [5]


> qwerty2


что возвращает gethostname() ? ты хоть сподобился проанализировать рез-т и декодировать код отказа, если таковой имел место быть ?


 
Reindeer Moss Eater   (2003-12-01 14:54) [6]

А WSAStartup делаешь, если уж выбрал такой способ получения имени хоста?

Чем тебе GetComputerName-то не нравится?


 
qwerty2   (2003-12-01 15:11) [7]

Digitman © (01.12.03 14:53) [5]

gethostname говорит что все нормально! возвращаемое значение =0.

Reindeer Moss Eater © (01.12.03 14:54) [6]
WSAStartup не делаю.
Но вышеприевдвнный код на С работает и без WSAStartup.

GetComputerName - работает! спасибо.
интересно все же почему gethostname не сработало


 
Silver Alex   (2003-12-01 15:11) [8]

должно работать, только что специально еще раз проверил.Что-то у тебя не так, код бы посмотреть


 
Reindeer Moss Eater   (2003-12-01 15:17) [9]

интересно все же почему gethostname не сработало

Потому что WSAStartup не было.



Return Values

If no error occurs, gethostname returns zero. Otherwise, it returns SOCKET_ERROR and a specific error code can be retrieved by calling WSAGetLastError.


 
Digitman   (2003-12-01 15:18) [10]

возможно - кириллица в имени компьютера


 
Digitman   (2003-12-01 15:21) [11]


> Reindeer Moss Eater



> If no error occurs, gethostname returns zero


он и говорит, что получает 0
согласно описанию, при таком рез-те нет повода для вызова WSAGetLastError()

хотя - согласен на все 100% : WSAStartup() здесь нужен



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
4-36899
mOOx_
2003-10-16 12:15
2003.12.12
Абсолютные координаты окна


14-36823
Шишкин Илья
2003-11-19 17:02
2003.12.12
Блок схемы


14-36845
iNew
2003-11-19 14:51
2003.12.12
Вопрос по русскому языку.


1-36714
bss
2003-12-02 14:31
2003.12.12
Открыть файл в приложении, которому он соотвествует


4-36904
novenkiy
2003-10-09 15:25
2003.12.12
Вроде HotKey, а вроде и нет...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский