Erro DLL
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;
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
Curtidas 0
Respostas
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)
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
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.
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
12/01/2004
Se você não chamar a função, ou não usar a dll, o erro continua?
GOSTEI 0
Radatec
12/01/2004
Ola
Eu também tive o mesmo problema, gostaria de saber se alguem tem a solução.
Eu também tive o mesmo problema, gostaria de saber se alguem tem a solução.
GOSTEI 0