Fórum Erro DLL #205995

12/01/2004

0

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

Responder

Posts

12/01/2004

Beppe

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)


Responder

Gostei + 0

13/01/2004

Danilorsa

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)



Responder

Gostei + 0

13/01/2004

Beppe

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


Responder

Gostei + 0

29/10/2004

Radatec

Ola

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar