Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jose Kismajoros

Passagem de parametro por referencai delphi em c#

Recommended Posts

Pessoal,

 

Estou desenvolvendo um sistema em C#, no qual utilizo uma dll escrita em Delphi, e estou com problemas em uma das funções.

 

Alguém pode me ajudar a entender o que pode estar de errado?

 

A função em Delphi

type TMat = array[1...1081] of char;

Function Read_Card(var Matriz :TMat): boolean; stdcall;

 

Como estou usando em C#

 

[DllImport("MyDLL.dll", EntryPoint = "Read_Card", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Unicode)]

public static extern Boolean Read_Card(ref char[] Matriz);

 

 

 

char[] _strMtzLido = new char[1080];

Read_Card(ref _strMtzLido);

 

O que acontece é que dá um erro do vsocks.exe e fecha o programa

 

Agradeço a ajuda

 

Abs,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, honestamente nunca tentei usar dll feita em delphi no C# ... mas vejo que tem um erro no seu código.... a dll está esperando uma variável do tipo TMat, que é um array de chars... e você no seu código está mandando um array de chars diretamente, não um TMat... experiemente criar no seu código do c# um tipo TMat, como o usado na função do Delphi, e mandar uma variável deste tipo pra dll. Talvez isto resolva seu problema.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.