Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

использование DLL [D6, XP]


Mr tray ©   (2006-05-12 00:06:00) 

Доброе утро/день/вечер. Первый раз сталкиваюсь с DLL. Читал хелп. Делаю так, как понял. Но чего то функция выдает не то, что нужно.
library Project2;
uses
 SysUtils, Classes;
function func(x:integer):integer;stdcall;
begin
 func:=x*11;
end;
exports
 func name 'func'; {А нужен ли вообще name 'func', а то что с ним, что без него - ничего не меняется}
{$R *.res}
begin
end.


program Project1;
{$APPTYPE CONSOLE}
uses
 SysUtils, Windows;
type
 Tfunc=function(x:integer):integer;
const
 mydll='Project2.dll';
var
 hnd:THandle;
 func:tfunc;
 s:string;
begin
 { TODO -oUser -cConsole Main : Insert code here }
 getdir(0,s);
 hnd:=loadlibrary(pchar(s+'\'+mydll));
 @func:=GetProcAddress(hnd, 'func');    
 writeln(func(1));
 FreeLibrary(hnd);
 readln;
end.

выдает 13696188. а должен 11.


Джо   (2006-05-12 01:03:00) [1]

> {А нужен ли вообще name 'func', а то что с ним, что без
> него - ничего не меняется}

Не обязателен. Нужен, если хочешь экспортировать функцию под другим именем, отличным от того, какое она имеет.


Mr tray   (2006-05-12 00:17:00) [2]

ПАСИБ!


Eraser   (2006-05-12 00:13:00) [3]


> Mr tray   (12.05.06 00:06)


> type
>  Tfunc=function(x:integer):integer;

type
 Tfunc=function(x:integer):integer; stdcall


Наверх

Титульная страница Поиск, карта сайта Написать письмо