Главная страница
    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.05 c
2-1193398035
Alex_C
2007-10-26 15:27
2007.11.18
Как в своей форме перехватить открытие диалога выбора файла?


2-1193229696
alll_23
2007-10-24 16:41
2007.11.18
Как лучше считать дерево из таблицы БД в TreeView?


5-1154350531
Opilki_Inside
2006-07-31 16:55
2007.11.18
Использование Repository


2-1193562604
ari_9
2007-10-28 12:10
2007.11.18
при обновл. датасета оставить DBGrid в той же позиции скроллинга?


15-1192215230
oxffff
2007-10-12 22:53
2007.11.18
Danny Thorpe покидает Microsoft. Вот это да!!!





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