Valew a dica, mas isso tb naum deu certo..
quanto a compatibilidade usando Pchar eu conhecia, mas naum tinha tentado
uma declaração da forma como vc sugeriu "SeuArray: Array of Array[0..255] of
Char;" tentei isto, mas o problema foi o mesmo de com um array qualquer.. de
string por exemplo ""[Error] Un_testD7.pas(49): Type not allowed in Variant
Dispatch call" a tal chamada soh parece compilar com os tipos embutidos da
linguagem, string, boolean, etc e variant, por isso tentei criar o tal
"array de strings" que a documentação da dll pedia de diversas formar
permitidas pelo variant, sem sucesso :( o grande problema eh que ñ consigo
passar o array como parametro para a função pq a compilação diz que o tipo
(array) naum eh aceito como perametro pelo variant (origem do objeto q criei
com a dll), ñ conheço uma forma de criar um objeto OLE apartir de uma dll q
naum seja apartir de um variant, mas se isso for possivel desvio do problema
de o array ñ ser aceito por um variant naum?
Nunca pensei q passar um array como parametro pra uma dll "estrangeira"
(naum delphi) era tão cheio de excessoes :)
Alguma idéia?
Obrigado!


 Mensagem: 10
     Data: Tue, 4 Oct 2005 16:46:19 -0300
       De: "FILIPE - GURU" <[EMAIL PROTECTED]>
  Assunto: Re: PROBLEMA COM PARAMETRO ARRAY EM DLL ESOTÉRICA ; ) ALGUEM JAH
VIU DISSO?

Olha cara, naum sei se t ajuda, talvez tu jah saibas disso:

uma string no delphi, eh um array de chars, onde o prmeiro caracter é o
número de caracteres da string, ex:

[6][S][T][R][I][N][G]

e em vb, c, e no windows, uma "string" é delimitada pelo caractere nulo:

[S][T][R][I][N][G][0#]

pra transformar uma string Delphi em "String Multiuso" faz-se:

PChar(StringDelphi)

qdo vc for criar o array, talvez deva ser declarado assim::

SeuArray: Array of Array[0..255] of Char;

Tenta isso e posta o resultado.

Flw!

----- Original Message -----
From: "Rafael" <[EMAIL PROTECTED]>


            Uma dll criada em VB na qual em uma função o parametro passado é
um array de strings, no exemplo em VB de uso da dll o cara alimenta o array
com os valores q quer, depois chama a função e passa o nome do array como
parametro, sem especifar um indice ou qquer outra coisa, como se pode fazer
no C por exemplo, mas no Delphi ñ dá pra fazer o mesmo, se eu tentar passar
para a função somente o nome do array da erro de compilação dizendo "Tipe
not allowed in Variant Dispatch call" bem.. eu crio um objeto contendo a dll
apartir de um variant.. assim :
            obj : variant;
            ...
            obj := CreateOleObject('MinhaDLL');
            ...
            obj.Funcao(OArray);

            desta forma da o erro de compilação, mas eh desta forma que se
faz no VB e funca...

            tentei, então com pchar e um monte de tipos de array esotericos
o unico array q passa da compilação sem dar erro, é o criado assim  array :=
VarArrayCreate([0,1],varolestr); e o array eh um variant.

            mas esta tentativa da erro de execução "tipos incompativeis"

            Alguem jah passou um parametro para uma dll que seja array do
tipo string? de preferencia para uma dll ñ delphi? li algo no help do delphi
q existe umas excessoes neste caso, mas o help naum ma pareceu claro..

            Alguem pode me ajudar? jah passaram por isso?

            Obrigado

      www.ansata.com.br



-- 
Internal Virus Database is out-of-date.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.11.6/111 - Release Date: 23/09/2005



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 




Responder a