DLL

0

Mam problem z biblioteka DLL napisana w C. Jak wywolac funkcje ktora ma argument typu strukturalnego zeby nie wysypywalo sie bledem pamieci?

0

Moze napiszesz cos wiecej. Jak wyglada funkcja, struktura...

0

def funkcji wyglada tak
int GetStatus_CashRegister(
tCASH_REGISTER_STATUS * aStatusOutPtr
);
struktura tak
typedef struct
{
BOOL FSK;
BOOL CMD;
BOOL PAR;
BOOL TRF;
} tCASH_REGISTER_STATUS;

tworze moja strukture
pCASH_REGISTER_STATUS=^tCASH_REGISTER_STATUS;
tCASH_REGISTER_STATUS=record
FSK : Boolean;
CMD : Boolean;
PAR : Boolean;
TRF : Boolean;
end;i

funkcje laduje tak
function GetStatus_CashRegister(aStatusOutPtr : pCASH_REGISTER_STATUS):Integer; external 'ThermalServiceLibrary.dll';

funkcje wywoluje tak

var
s: pCASH_REGISTER_STATUS;
begin
new(s);
GetStatus_CashRegister(s)
end
Tworzy sie blad pamieci w bibliotece

0

Moze pomoze:
Zamiast Boolean daj BOOL i ...

teger; stdcall; external  'Ther

...</delphi>

0

niestety BOOL nie przyjmuje [glowa]

0

Tak jak foflik mówi: na pewno musi być dyrektywa stdcall, a jeśli wtedy nie będzie działać, to zamiast boolean możesz spróbować longbool.

0

Tak jak foflik mówi: na pewno musi być dyrektywa stdcall, a jeśli wtedy nie będzie działać, to zamiast boolean możesz spróbować longbool.

Albo zamiast wskaźnika przekazywać parametr poprzez referencję (var)

1 użytkowników online, w tym zalogowanych: 0, gości: 1