2008/11/26 Reginaldo Donizete Felix <[EMAIL PROTECTED]>: > Bom dia, > Estou com uma duvida básica em DLL > Esta lendo um artigo sobre DLL e vi que alguns tipos de variaveis quando > utilizadas em uma DLL podem não ser reconhecidas em uma outra linguagem ao > utilizar esta dll, como chamadas de funções e etc. > Estou desenvolvendo uma DLL e estou com duvida em relação aos tipos que devo > usar nas chamadas de função. > gostaria de saber se os tipos básicos de Delphi : String, Integer, Double. > se eu posso usar estes tipos nos parametros das funções ou se existe outros > fomatos que devo usar.
O problema da DLL é que, toda memória que for alocada dentro dela deve ser desalocada por ela. E toda memória que for alocado fora dela, deverá ser desalocada por aquele que alocou. Integer, Double, Longint, e alguns outros tipos primitivos são estáticos, não dependem de alocação de memória. String nativa do Delphi é dinâmica, e você não pode usar porque a sua dll, ora 'pensa' que o outro lado irá desalocar, ora 'pensa' que o outro lado alocou e que ela deverá desalocar. E aí ocorrem os AVs. Substitua string por widestring, que é controlada pelo sistema operacional, e não deverá causar problemas. Joao Morais