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

Responder a