Форум: "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
Время: 3.491 c