Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Экспорт функций


Автор: Spawn 14.11.2002, 06:06
Я еще ни разу не экспортировал функции, что я сдесь делаю неправильно:

unit MyAPI;

{$WEAKPACKAGEUNIT}

interface

uses Windows;

{ HPPEMIT '#include <windows.h>'}

{$EXTERNALSYM GET_XBUTTON_WPARAM}
function GET_XBUTTON_WPARAM(WParam:WORD):integer;stdcall;

implementation

function GET_XBUTTON_WPARAM;     external  'GET_XBUTTON_WPARAM'

end.

при компиляции программы курсор переходит на

begin
 Application.Initialize;//сюда
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.

при последующем нажатии компиляции происходит ошибка.
Так же надо указать значения XBUTTON1, XBUTTON2;
Подскажите пожалуйстта как решить эту проблему.

Автор: Vit 14.11.2002, 06:17
Вот пример который даёт справка по дельфи:
Код

library MinMax;

function Min(X, Y: Integer): Integer; stdcall;
begin
 if X < Y then Min := X else Min := Y;
end;

function Max(X, Y: Integer): Integer; stdcall;
begin
 if X > Y then Max := X else Max := Y;
end;

exports
 Min,
 Max;

begin
end.



Автор: Spawn 14.11.2002, 06:27
В MSDN написано:
Header: Declared in Winuser.h; include Windows.h.
но не указано какая DLL нужна для экспорта
Я посмотрел WinSock и получается, что нада добавить

const
 dll='???.dll'

function GET_XBUTTON_WPARAM;     external  dll name 'GET_XBUTTON_WPARAM'

но я не знаю какая DLL нужна(((

Автор: Vit 14.11.2002, 06:30
Теперь ты меня совсем запутал, что тебе надо?

- экспортировать описанную тобой функцию чтобы она была доступна для других приложений?

- импортировать чью-то чужую функцию, чтобы использовать в своём приложении?


Автор: Spawn 14.11.2002, 06:35
Мне нада экспортировать функцию описаную в MSDN как GET_XBUTTON_WPARAM для получения сведений о том какая кнопка мышки нажата(XBUTTON1 или XBUTTON2).

Автор: Spawn 14.11.2002, 06:44
Я нашел где она лежит - User32.lib, но при подстановке тот же еррор((((

Автор: Vit 14.11.2002, 06:49
Примерно так:

Код
function GET_XBUTTON_WPARAM(WParam:WORD):integer;stdcall;external 'User32.dll';

procedure TForm1.Button1Click(Sender: TObject);
begin
 GET_XBUTTON_WPARAM(2);
end;


только 2 примечания:

1) У меня такой функции в 'User32.dll' нет
2) То что тебе надо называется не экспортом а импортом


Автор: Spawn 14.11.2002, 06:56
эта функция существует токо в Win2K

Автор: Vit 14.11.2002, 08:43
Цитата(Spawn @ 13.11.2002, 13:56)
эта функция существует токо в Win2K

А в XP она есть?

Автор: Spawn 14.11.2002, 14:32
должна быть в Win2K, XP и NT

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)