Pessoal, estou com um problema que não consigo encontrar a causa, quanto menos uma solução.
Desenvolvi uma DLL com uma função exportada que recebe um valor do tipo PCHAR como parametro, faz um processamento e retorna um outro valor PCHAR como resposta. A declaração da função está assim: function ProcessaDados(Entrada : Pchar) : Pchar; stdcall; Exportei da seguinte maneira: exports ProcessaDados name 'DLLProcessaDados'; O problema é que quando o retorno da DLL é relativamente pequeno, ele retorna normal para o programa, que processa e da continuidade sem problema nenhum. Mas quando esse retorno é muito grande, a DLL simplesmente não retorna nada para o programa que chama, ou melhor, o programa não recebe nada, porque a DLL retorna tudo normal. Debuguei a DLL ate a ultima linha de código, e ela retornou tudo sem problemas. No momento que esse valor é passado para o programa, que ele se perde. Alguem sabe o que pode estar acontecendo e como contorná-lo?? Estou usando PCHAR exatamente pq as DLLs feitas em delphi que utilizam string já são um pouco problemáticas, ate pq tem que mandar junto a BORLNDMM.DLL. Outro problema que ocorre as vezes é que a dll só retorna o valor quando quer... uma hora retorna, outra hora não... e não é problema com as funções internas da DLL, pq eu ja joguei todas elas pra um executavel e testei infinitas vezes e sempre foi OK. Como resolver este problema? Quando crio uma dll no delphi ele vem comentado que se eu usar PCHAR, não terei problema com memória, mas pelo jeito não é bem assim. Alguém ja encontrou "a solução" real para criação de DLLs em delphi?? Abraços Alemao [As partes desta mensagem que não continham texto foram removidas]