begin process at 2012 05 30 10:29:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

MFC

 > 

utilisation d'une dll c# dans un programme c++ MFC non managé


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

utilisation d'une dll c# dans un programme c++ MFC non managé

jeudi 5 juin 2008 à 17:20:57 | utilisation d'une dll c# dans un programme c++ MFC non managé

wogkiller

Bonjour,

j'explique mon problème :  j'ai une dll écrite par mes soin en c#. Une des fonctions de cette dll a pour paramètre une string (de type "string" ) et deux entiers (de type "int").
J'utilise cette dll dans une application mfc, en c++ non managé, qui fait un appel comme suit :

methodName

= L"lancerServeur";
paramLancerServeur.cArgs =3;
paramLancerServeur.rgvarg =&resultatLancerServeur;
paramLancerServeur.cNamedArgs =0;
paramLancerServeur.rgdispidNamedArgs = NULL;
argsLancerServeur[0].vt = VT_INT;
argsLancerServeur[0].intVal =4;
argsLancerServeur[1].vt = VT_INT;
argsLancerServeur[1].intVal = portServeur;
argsLancerServeur[2].vt = VT_BSTR;
argsLancerServeur[2].bstrVal = SysAllocStringByteLen("127.0.0.1",sizeof("127.0.0.1"));   /*SysAllocString(L"127.0.0.1");     me fait la même erreur*/
resultatLancerServeur.vt = VT_BOOL;

HRESULT resh

;

CoInitialize

(NULL);
if(SUCCEEDED(::CLSIDFromProgID(L"ClientServeur.Serveur",&IDClassServeur)))
      if(SUCCEEDED(CoCreateInstance(IDClassServeur, NULL, CLSCTX_ALL, IID_IDispatch,(void**)&instanceServeur))) 
            
if(SUCCEEDED(instanceServeur->GetIDsOfNames(IID_NULL,&methodName,1, GetUserDefaultLCID(),&COMLancerServeur))) 
                  if(SUCCEEDED(resh= instanceServeur->Invoke(COMLancerServeur, IID_NULL,GetUserDefaultLCID(), DISPATCH_METHOD,&paramLancerServeur,&resultatLancerServeur, NULL, NULL))) 
                  { 
                           AfxMessageBox
(resultatLancerServeur.boolVal);
                           instanceServeur->Release(); 
                   } 
                  else

                           AfxMessageBox

(resh);
SysFreeString ( argsLancerServeur[2].bstrVal );
CoUninitialize();


avec les déclarations du .h :

OLECHAR

*methodName;//nom de la methode de l'objet COM

CLSID IDClassServeur

;//ID de l'objet COM

IDispatch

*instanceServeur;//instance de l'objet COM

DISPID COMLancerServeur

;//lien vers la methode COM

DISPPARAMS paramLancerServeur

;//paramètres à passer à la méthode COM

VARIANT argsLancerServeur

[3];//paramètres d'entrées (attention, il doivent être passé dans l'ordre inverse)

VARIANT resultatLancerServeur

;//paramètre de sortie


lorsque j'essai tout ça, la variable de retour resh est à la valeur  "type de variable incorrect".... je me demande donc si le passage de la string se fait bien. Quelqu'un a une idée qui pourrait me débloquer?

merci


Cette discussion est classée dans : dll, vt, argslancerserveur, paramlancerserveur, resultatlancerserveur


Répondre à ce message

Sujets en rapport avec ce message

DLL OLEAUT32 comment ça marche? [ par julienbad ] Bonjour à tous!Voila j'ai un problème avec l'utilisation d'un Variant .En fait je doit utiliser une dll activeX écrite en VB avec un programme écrit s DLL [ par mamag ] Bonjour, je souhaiterais construire une DLL, pour cela j'ai suivi les consignes d'un tutorial trouvé sur le site internet.j'ai insérer ce bout de prog DLL et fenetre de dialogue [ par ricky78 ] Bonjour J'essaye pour la premiere fois de mettre des fonctions de mon code dans une DLL. Sur differents tutoriel et aide j'arrive bien a cree et a uti utiliser une DLL [ par mamag ] Bonjour,J'ai crée une DLL et j'ai besoin de savoir si ce que j'ai fais est juste.j'ai d'abord créer un project Dynamic_Link_Libraryet écrit mes foncti DLL_PROCESS_ATTACH [ par vecchio56 ] Dans une DLL, quand dwReason==DLL_PROCESS_ATTACH, y a-t-il un moyen rapide de connaitre le process en question qui utilise la DLL? pb DLL [ par mamag ] Bonjour,J'ai créer une DLL qui doit retourner plusieurs paramètres au pg appelant. cela fait plusieurs jour que j'essai de la tester, je voulais faire Pb Kernel32 [ par UnderFlow ] Pb passage win Xp -> 98. Bonjour, Alors voilà, j'ai développé un petit programme en C que j'ai compilé sous dev-C++ (ds mon environnement XP). Il s'e SDL ou ALLEGRO ? [ par vincelefou ] Bonjour, J’ai une question à vous posez sur les bibliothèques graphiques ( -> c’est pour faire une petite appli en 2D avec Dev-C sur win XP). J’hési [Visual .NET 2003] Web Components (OWC10.DLL) initialisation [ par spyanakine ] Salut à tous, j'utilise un web ocomponent OWC10.DLL sous Visual .NET 2003 en C++ (et non VB). Je n'arrive pas à initialiser les valeurs du graphique c Probleme avec une DLL [ par caperman47 ] Bonjour à tous!!!j'ai besoin d 'aide, j'ai crée une dll que j'appelle dans un programme Vb, mais il me dit qu'il ne trouve aucune entrée dans la dll a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales