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

Вниз

GetComputerNameEx   Найти похожие ветки 

 
Германн ©   (2007-05-04 02:30) [0]

Почему сия функция есть в справке, но отсутствует в Windows.pas?
И при этом фигурирует и в справке и в kernel32.def, который в каталоге для С++ Билдера?
BDS2006


 
begin...end ©   (2007-05-04 08:05) [1]

А какая разница, почему? Надо использовать -- значит, импортируйте её из kernel32.dll самостоятельно.


 
clickmaker ©   (2007-05-04 09:57) [2]

secur32.dll


 
begin...end ©   (2007-05-04 10:38) [3]

> clickmaker ©   (04.05.07 09:57) [2]

?


 
Rouse_ ©   (2007-05-04 11:01) [4]


> begin...end ©   (04.05.07 10:38) [3]
> > clickmaker ©   (04.05.07 09:57) [2]
>
> ?

http://msdn2.microsoft.com/en-us/library/ms724435.aspx


 
umbra ©   (2007-05-04 11:15) [5]


> Rouse_ ©   (04.05.07 11:01) [4]
> > begin...end ©   (04.05.07 10:38) [3]
> > > clickmaker ©   (04.05.07 09:57) [2]
> >
> > ?
>
> http://msdn2.microsoft.com/en-us/library/ms724435.aspx
>

?


 
Leonid Troyanovsky ©   (2007-05-04 11:20) [6]


> umbra ©   (04.05.07 11:15) [5]

> > Rouse_ ©   (04.05.07 11:01) [4]
> > > begin...end ©   (04.05.07 10:38) [3]
> > > > clickmaker ©   (04.05.07 09:57) [2]

> > http://msdn2.microsoft.com/en-us/library/ms724435.aspx

> ?

Sic!

--
Regards, LVT.


 
begin...end ©   (2007-05-04 11:37) [7]

Кто-нибудь читал сабж?


 
Игорь Шевченко ©   (2007-05-04 11:40) [8]


> Почему сия функция есть в справке, но отсутствует в Windows.
> pas?


Потому что не перевели. Для того, чтобы ее использовать, можно скачать прототип с http://www.delphi-jedi.org из раздела API translation (вроде так)


 
clickmaker ©   (2007-05-04 11:49) [9]


> [7] begin...end ©   (04.05.07 11:37)
> Кто-нибудь читал сабж?

интересно, что бы знатоки психологии сказали про очитку User вместо Computer...


 
Rouse_ ©   (2007-05-04 13:11) [10]

Хе, User и Computer это я да :)))


 
Германн ©   (2007-05-04 21:25) [11]


> Игорь Шевченко ©   (04.05.07 11:40) [8]
>
>
> > Почему сия функция есть в справке, но отсутствует в Windows.
>
> > pas?
>
>
> Потому что не перевели. Для того, чтобы ее использовать,
>  можно скачать прототип с http://www.delphi-jedi.org из
> раздела API translation (вроде так)
>

Гугление по сайту http://www.delphi-jedi.org не дало ни одного совпадения с сабжем :(
Ну дык, а msdn на что?
BOOL GetComputerNameEx(
 COMPUTER_NAME_FORMAT NameType,
 LPTSTR lpBuffer,
 LPDWORD lpnSize
);


type
TNameType = (ComputerNameNetBIOS, ComputerNameDnsHostname,   ComputerNameDnsDomain, ComputerNameDnsFullyQualified, ComputerNamePhysicalNetBIOS, ComputerNamePhysicalDnsHostname,
ComputerNamePhysicalDnsDomain, ComputerNamePhysicalDnsFullyQualified,
 ComputerNameMax);

function GetComputerNameEx(NameType: TNameType; var Buff: PChar; var Size : DWord));

Если я неправильно перевел что-то, ткните меня носом, пожалуйста!


 
begin...end ©   (2007-05-04 21:45) [12]

> Германн ©   (04.05.07 21:25) [11]

Перед Buff не нужно var. И не забудьте указать соглашение о вызове (stdcall).


 
Германн ©   (2007-05-05 00:49) [13]


> begin...end ©   (04.05.07 21:45) [12]
>
> > Германн ©   (04.05.07 21:25) [11]
>
> Перед Buff не нужно var. И не забудьте указать соглашение
> о вызове (stdcall).
>

Насчёт соглашения о вызовах, конечно не забуду. И то, что данное соглашение  имеет префикс std не случайно, я тоже понимаю. Не "первый раз замужем" :)

А вот о var Buff хотелось бы поподробнее. Стал тут шерстить все функции имеющие параметром PChar и не нашел ни одной, где параметр такого типа был бы объявлен как var-параметр. А есть ли разница var PChar или  PChar?

Но в основном я хотел в [11] спросить правильно ли я описал тип TNameType. Токмо вот, к сожалению, забыл привести его Си-шное описание:
typedef enum _COMPUTER_NAME_FORMAT
{
 ComputerNameNetBIOS,
 ComputerNameDnsHostname,
 ComputerNameDnsDomain,
 ComputerNameDnsFullyQualified,
 ComputerNamePhysicalNetBIOS,
 ComputerNamePhysicalDnsHostname,
 ComputerNamePhysicalDnsDomain,
 ComputerNamePhysicalDnsFullyQualified,
 ComputerNameMax
}COMPUTER_NAME_FORMAT;

У меня "на подхвате" были в тот момент два "Си-шника". Один - "чистый Си-шник", не знающий борланда ответил, что я не прав, если отталкиваться от "стандарта". Что есть "стандарт" он не уточнил, а я не стал выспрашивать, поскольку его квалификация для меня пока спорна. Другой, которого квалификацию я себе чётко представляю, который работает на С++Билдере, подтвердил моё мнение о данном типе.


 
begin...end ©   (2007-05-05 07:14) [14]

> Германн ©   (05.05.07 00:49) [13]
> А есть ли разница var PChar или  PChar?

Да, безусловно. Функция ожидает, что ей передадут адрес буфера для хранения тела строки. Указывая var, Вы заставляете компилятор передавать в функцию не этот адрес, а адрес переменной, в которой он лежит. Естественно, будет ошибка.

> правильно ли я описал тип TNameType
Здесь я ошибок не вижу.

И ещё кое-что, о чём не следует забывать: в kernel32 функции с таким именем нет. Т.к. она работает со строками, есть две её версии: GetComputerNameExA и GetComputerNameExW. Т.е. импорт ANSI-версии будет выглядеть так:

function GetComputerNameEx(NameType: TNameType; Buff: PChar; var Size: DWORD): BOOL; stdcall;
  external "kernel32.dll" name "GetComputerNameExA";


 
Германн ©   (2007-05-06 00:32) [15]


> begin...end ©   (05.05.07 07:14) [14]

Спасибо.


 
Германн ©   (2007-05-06 02:10) [16]

Попробовал. Работает.
Попутно возник вопрос. А что кроме FormatMessage нет иных путей обработать LastError?


 
Leonid Troyanovsky ©   (2007-05-06 10:17) [17]


> Германн ©   (06.05.07 02:10) [16]

> Попутно возник вопрос. А что кроме FormatMessage нет иных
> путей обработать LastError?

Win32Check?

--
Regards, LVT.


 
Игорь Шевченко ©   (2007-05-07 11:50) [18]

Германн ©   (04.05.07 21:25) [11]


> Гугление по сайту http://www.delphi-jedi.org не дало ни
> одного совпадения с сабжем :(


Вот же.
А я сразу нашел: ftp://ftp.delphi-jedi.org/api/win32api.zip, unit JwaWinBase.pas


 
TStas ©   (2007-05-09 23:59) [19]

Жалко, ссылка не открывается:(


 
Германн ©   (2007-05-10 03:04) [20]


> TStas ©   (09.05.07 23:59) [19]
>
> Жалко, ссылка не открывается:(
>

Какая именно ссылка не открывается?



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

Форум: "WinAPI";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.045 c
15-1192623923
Question
2007-10-17 16:25
2007.11.18
Flash


15-1192218426
Дженкинс
2007-10-12 23:47
2007.11.18
У кого-нибудь есть эл. книга


2-1192857340
Antoxa2005
2007-10-20 09:15
2007.11.18
Как пердать значение параметра null для поля, типа "дата"???


6-1173969872
Fantasy
2007-03-15 17:44
2007.11.18
NETAPI32.DLL


15-1192014809
Sonia
2007-10-10 15:13
2007.11.18
MS IIS - убийца





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский