Erro de aplicação Delphi com OLE em uma DLL
Pergunta
Eu tenho um objeto COM, Configurar/criar/trabalhar a partir de um datamodule.
Criar/executar/liberar o datamodule a partir de um aplicativo funciona sem um problema.
Mas colocar o datamodule em uma DLL funciona bem na primeira vez, executando o objeto COM etc. mas depois de algumas chamadas sem reiniciar o aplicativo, esse erro aparece.
Mensagem de erro Imagem http://darkaxi0m.name/so/errormessage.gif
Há um pedaço de código no aplicativo, então não posso postar tudo, tentei o Madexcept no aplicativo e na DLL, sem sorte. O IDE quebra em um ponto que não parece muita ajuda ...
TEXTO DE ALT HTTP://DARKAXI0M.NAME/SO/CPUBREAK.GIF
Este é o código que lida com o datamodule, a mesma função é usada no aplicativo e a DLL nos dois testes
function GetAmount( Amount : integer; var Info: PChar): integer; stdcall;
var
tempInfo: string;
workerDM : TworkerDM;
begin
Result := 0;
workerDM := TworkerDM.Create(nil);
try
tempInfo:= Info;
Result := workerDM.GetAmount(Amount, tempInfo);
StrPCopy(Info, tempInfo);
finally
workerDM.Free;
end;
end;
Eu gostaria de culpar o objeto OLE, mas funciona bem fora da DLL
Estou sem pensar em onde começar a procurar.
Solução 2
Não acredito mais que essa pergunta possa ser respondida. O projeto foi raspado e o objeto que produz o erro não é mais usado.
Meu Excluir Os pedidos ficaram sem resposta.
Então esta agora é minha resposta.
Outras dicas
No finally
, você está ligando Free
, mas deveria ligar workerDM.Free
.