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

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

Вызов функции


Balabolin Oleg ©   (2002-06-20 09:37:00) 

Может кто сможет помочь, а то я уже...

Надо написать dll - plugin к одной проге... На Дельфи
Пример такой dll ки есть, но на C

Все попытки перевести это хозяйство из C в Delphi потерпели неудачу...
Я уже совсем запутался в этих указателях, и прога постоянно вылетает с Access Violation :(

Может кто-нибудь сможет написать прототипы функций в Delphi?

Часть кода примера на С...
typedef struct PtPluginInfo_ {
DWORD dwSize;
FARPROC lpfnProcPtr;
DWORD dwProcParam;
DWORD dwType;
LPSTR lpszName;
LPVOID lpTypeInfo;
} PtPluginInfo, *LPPtPluginInfo;

LPPtPluginInfo lpInfo = NULL;

WORD PluginInitModule(LPPtPluginInfo *lpPluginInfo, LPWORD lpwItems)
{
lpInfo = (LPPtPluginInfo)LocalAlloc(LPTR, sizeof(PtPluginInfo) * iCount);



*lpPluginInfo = lpInfo;

*lpwItems = iCount;

}


PVOzerski   (2002-06-20 11:10:00) [1]

type
PtPluginInfo=packed record
dwSize:DWORD;
lpfnProcPtr:FARPROC;
dwProcParam,
dwType:DWORD;
lpszName:LPSTR;
lpTypeInfo:pointer;
end;
LPPtPluginInfo=^PtPluginInfo;

var
lpInfo:LPPtPluginInfo=nil;

type //эти 2 декларации - на случай, если pwItems - массив
tWord=array[0..0]of word;
LPWORD=^tWord;

function PluginInitModule(var lpPluginInfo:LPPtPluginInfo; pwItems:LPWORD):word;cdecl;
begin
lpInfo:=LPPtPluginInfo(LocalAlloc(LPTR,sizeof(PtPluginInfo)*iCount));


Игорь Шевченко   (2002-06-20 10:00:00) [2]

А вы что написали ? Мне было бы удобнее исправлять ошибки (есть есть) в вашем коде.

С уважением,


Наверх

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