Форум: "Потрепаться";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
ВнизИспользование функции из 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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c