Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2007.11.18;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
2-1193657824
seoidBar
2007-10-29 14:37
2007.11.18
Кто разбирается в LCD мониторах???


15-1192451623
Slider007
2007-10-15 16:33
2007.11.18
С днем рождения ! 15 октября 2007 понедельник


8-1169730583
olegnik
2007-01-25 16:09
2007.11.18
Трансформирование растров


6-1174323073
malefik
2007-03-19 19:51
2007.11.18
idTCPServer


3-1183979958
ambhtr
2007-07-09 15:19
2007.11.18
Пропадает изображение меню, во время загрузки базы