ERRO AO PASSAR PARAMETROS PARA METODO

RAFAMARTIN 20/08/2009 16:06:11
#320453
pessoal criei uma dll no c# e referenciei essa dll no vb6.

a[i quando chama o metodo para passar os parametros me da o seguinte erro

function or interface marked as restricted, or function uses an automation type not supported in Visual Basic

meu metodo no c# esta?

public string Gravar(string[] pDestinatarios, string pAssunto, string pCorpo, string pResposta, int pFormato, int pPrioridade)
{
EmailCorpWs.Mensagem message = new EmailCorpWs.Mensagem();
return message.GravarMensagem(KEY, pDestinatarios, pAssunto, pCorpo, pFormato, pPrioridade, null, pResposta);
}

e estou chamando assim no vb6

Dim s As New CarneEmailCorp.Sender
Dim EmailArray(5) As String

EmailArray(1) = [Ô]rafael.martin@ig.com.br[Ô]

MsgBox s.Gravar(EmailArray(1), [Ô]teste vb6[Ô], [Ô]teste do email corpemail mapfre[Ô], [Ô]rafa-martin@ig.com.br[Ô], 0, 0)


o que esta errado
WEBMASTER 20/08/2009 17:00:40
#320456
hmmmm....cacilda hein ?!!?
sera que nao eh o array de string, ou pior ainda o int dele nao equivale ao long do vb ?
TECLA 20/08/2009 17:20:30
#320458
Tente o seguinte:

1. Acrescente o NameSpace InteropServices
using System.Runtime.InteropServices;


2. Antes da criação da classe
[ClassInterface(ClassInterfaceType.AutoDual)]
[ProgId([Ô]MeuNameSpace.MinhaDLL[Ô])]
[ComVisible(true)]
public class ...


Isso aí já me quebrou um galho...
Valeu!
Tópico encerrado , respostas não são mais permitidas