![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызов функции
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]А вы что написали ? Мне было бы удобнее исправлять ошибки (есть есть) в вашем коде.
С уважением,