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

Вниз

Использование функции из kernel32.dll, которой нет в заголовках   Найти похожие ветки 

 
Aldor_   (2004-07-10 13:11) [0]

По поводу соседней ветки о сабже (ссылка ниже): пытаюсь сам написать заголовок для функции (ссылки на страницы msdn ниже) GetComputerNameEx.

interface
...
function GetComputerNameEx(NameType: TComputerNameFormat; lpBuffer: PChar; var nSize: DWORD): BOOL; stdcall;
...
implementation
function GetComputerNameEx; external kernel32 name "GetComputerNameEx";

Тип TComputerNameFormat тоже писал сам:

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

При запуске приложения выдает выдает "Procedure entry point GetComputerNameEx could not be located in the dynamic link library kernel32.dll".
Почему не поключается статически?!

Ссылка на ветку:
http://delphimaster.net/view/14-1089426184/ (правда там меня уже обещали линчевать :)

Ссылка на описание функции GetComputerNameEx (msdn):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getcomputername.asp

Ссылка на описание структуры COMPUTER_NAME_FORMAT (TComputerNameFormat):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/computer_name_format_str.asp


 
ПЛОВ   (2004-07-10 13:18) [1]


> Почему не поключается статически?!

АГА! НЕ ПОДКЛЮЧАЕТЬСЯ!! НУ ТАК ТЕБЕ И НАДО :) Нчего изменять windows.pas!!!!!

p.s. не обижайся


 
deep ©   (2004-07-10 13:39) [2]


> Использование функции из kernel32.dll, которой нет в заголовках
>

когда-то, еще в институте я без прочтения надлежащих книг хотел написать на асме драйвер устройста(для нестандартного чтения дискет в 5-дюймовом дисководе). Знаешь что получилось? Сжег монитор. :))


 
Dann   (2004-07-10 13:50) [3]

ПЛОВ   (10.07.04 13:18) [1]
> Нчего изменять windows.pas!!!!!

 ааааааа (плачет) я не меняа-а-а-ал, я в сво-ой модуль запихну-ул! :))))))))))))))))))))))

deep ©   (10.07.04 13:39) [2]
> Сжег монитор
 
 Преклоняюсь перед Вашим талантом, честное слово, я так не умею :)))


 
Aldor_   (2004-07-10 13:52) [4]

Dann (10.07.04 13:50) [3]

 Это... эт я, извиняюсь за путаницу, я тут не один за компом, тут еще один паренек посты слал.


 
deep ©   (2004-07-10 14:03) [5]


> Dann   (10.07.04 13:50) [3]
>  Преклоняюсь перед Вашим талантом, честное слово, я так
> не умею :)))

дык, сам толком не понял как так получилось(исходник списать на дискетку не получилось). Монитор конечно, не дымылся. Получился интресный эффект -- "звездное небо" как Нортона командора, только не из звездочек а из полной ASCII-таблицы символов. Я комп тихонько выключил и "сделал ноги". А на второй день там уже стояла совсем другая машина.


 
Anatoly Podgoretsky ©   (2004-07-10 14:05) [6]

Вот как надо делать апгрейд машин


 
Rouse_ ©   (2004-07-10 14:27) [7]

А под 98 ее и нет :)
 Windows NT/2000 or later: Requires Windows 2000 or later.
 Windows 95/98/Me: Unsupported.
 
Header: Declared in Winbase.h; include Windows.h.
 Library: Use Kernel32.lib.
 Unicode: Implemented as Unicode and ANSI versions on Windows 2000.


 
Aldor_   (2004-07-10 14:34) [8]

Rouse_ ©   (10.07.04 14:27) [7]

 Стоит ХР, дело, видимо, в чем то еще.
 Спасибо, что обратили внимание, я пропустил, а хотел на на машинах с 98-ми виндами запускать.


 
deep ©   (2004-07-10 14:44) [9]


> Anatoly Podgoretsky ©

:)))
Ну это отдельная тема. Примерно в те же времена для знакомого писал под дос резидента, который отслеживает смену даты (времени) и искусственно создает "проблему 2000". Благодаря мне тот знакомый обновил парк техники, невзирая на то, что проблемы 2000 там естественно не было, но машинки были не шустрые. Исходник имеется. :)))


 
Aldor_   (2004-07-10 15:15) [10]

Есть! Нашел баг.
Вот в чем дело было:
external kernel32 name "GetComputerNameExA"
И все заработало. Осталось только спросить у Борланда какого кулера они заголовки не дополняют (или неполностью дополняют)


 
Aldor_   (2004-07-10 15:39) [11]

Хм... а вот имя функции GlobalMemoryStatusEx так и остается "GlobalMemoryStatusEx" без всяких там "А". Её, кстати, в заголовки тоже не включили.


 
хм ©   (2004-07-10 15:46) [12]

а - это значит используются ascii строки. w - wide строеи. А когда в функции вообще строк нет, то и постфикса соответственно нет


 
Aldor_   (2004-07-10 16:22) [13]

хм ©   (10.07.04 15:46) [12]

Спасибо большое за консультацию, а я и не знал.


 
Marser ©   (2004-07-10 18:48) [14]

На будущее:
http://delphi-jedi.org/
Имеется объявление многих API-функций и не только.
Один из участников - Алекс Коншин.


 
Aldor_   (2004-07-11 04:15) [15]

Marser ©   (10.07.04 18:48) [14]
 Видел, знаем, спасибо :)


 
SammIk ©   (2004-07-11 09:23) [16]

КАк правильно заметили дело в "A" или "W"
Если использоваться прога будет в 98 то используи A, если только
в NT то лучше W(но мона и А). И естесно надо будет работать с
ВаидЧар.
Всего хорошего))



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

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

Наверх




Память: 0.5 MB
Время: 0.056 c
14-1089968652
gek
2004-07-16 13:04
2004.08.01
Проблема, на часах "Камертон"


1-1090325827
NeyroSpace
2004-07-20 16:17
2004.08.01
Как правильно создать приложение, чтобы его заголовок


14-1089225291
VID
2004-07-07 22:34
2004.08.01
Простой вопрос о настройке сети между двумя компами


3-1089031395
Artem03
2004-07-05 16:43
2004.08.01
"Упаковка" таблицы (физическое удаление записей из таблицы)


6-1085987739
Maxuz
2004-05-31 11:15
2004.08.01
Работа с весовым терминалом через TCP/IP