Erro DLL

Delphi

12/01/2004

Pessoal esta função está em uma DLL, e quando chamo pelo meu programa recebo uma mensagem de erro:

Invalid Pointer Operation. Alguém pode me ajudar???


function Data_Hora_Arquivo(Arquivo: String): String;export;stdcall;
var
FHandle: integer;
begin
FHandle := FileOpen(Arquivo, 0);
try
Result := DateTimeToStr(FileDateToDateTime(FileGetDate(FHandle)));
finally
FileClose(FHandle);
end;
End;


Danilorsa

Danilorsa

Curtidas 0

Respostas

Beppe

Beppe

12/01/2004

Quando você usa String como parâmetro em uma função da dll chamada pelo exe, ou vice-versa, você precisa adicionar ShareMem como primeira unit do uses, tanto em program(.exe) e library(.dll).

Ou, ao invés de String, você usa PChar. Pra transformar string em PChar é PChar(Uma_String) e de PChar para string é String(Um_PChar)


GOSTEI 0
Danilorsa

Danilorsa

12/01/2004

A dica de colocar ShareMem na Unit da DLL e do Programa resolveu em termos...

Após executar a função, realmente não deu erro. Mas quando fecho o programa aparece o erro novamente: INVALID POINT OPERATION.



Quando você usa String como parâmetro em uma função da dll chamada pelo exe, ou vice-versa, você precisa adicionar ShareMem como primeira unit do uses, tanto em program(.exe) e library(.dll). Ou, ao invés de String, você usa PChar. Pra transformar string em PChar é PChar(Uma_String) e de PChar para string é String(Um_PChar)



GOSTEI 0
Beppe

Beppe

12/01/2004

Se você não chamar a função, ou não usar a dll, o erro continua?


GOSTEI 0
Radatec

Radatec

12/01/2004

Ola

Eu também tive o mesmo problema, gostaria de saber se alguem tem a solução.


GOSTEI 0
POSTAR