No Delphi na minha DLL, tenho que alocar o pchar de retorno de uma função
Eu tenho uma DLL na qual tenho uma função que retorna um pchar. (para evitar ter que usar borlndmm) O que eu estava fazendo originalmente foi converter uma string como um pchar e retornar essa
Result := pChar(SomeFuncThatReturnsString)
Mas eu estava obtendo resultados esperados 90% das vezes e nas outras vezes não recebia nada.
Então, comecei a pensar que precisava alocar a memória para o pchar e que fazê-lo da maneira original era ter um ponto de pchar na memória que nem sempre seria o que estava lá quando a função foi chamada originalmente. Então agora eu tenho isso
Result := StrAlloc(128);
Strcopy(Result,PAnsiChar(Hash(Hash(Code,1,128),2,128)));
Mas isso me deixa com a necessidade de limpar a memória alocada no final do programa, o que eu faço com
StrDispose(Pstr);
Portanto, a pergunta de US $ 64 é: Preciso alocar memória ao retornar um PChar de uma função dentro de uma DLL ou posso apenas convertê-lo em um PChar?