Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1397 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Intégration de code C++ en C#

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Intégration de code C++ en C#

n°1565739
AsTro
Posté le 27-05-2007 à 00:05:06  profilanswer
 

Bonjour,
 
Je débute en C# et j'aimerais utiliser une dll C++ dans du code C#.
Plus excatement la dll de "power management" (PowrProf.dll). Je sais qu'il faut utiliser Dllimport mais le problème c'est que la fonction que je veux intégrer utilise des types non défini en C#.
DWORD WINAPI PowerGetActiveScheme(HKEY UserRootPowerKey, GUID** ActivePolicyGuid);
 
J'ai essayé ça :  

Code :
  1. [DllImport("PowrProf.dll" )]
  2. unsafe public static extern uint PowerGetActiveScheme(long UserRootPowerKey, void** ActivePolicyGuid);[cpp]
  3. mais je n'arrive pas à créer le ActivePolicyGuid. J'ai essayé un peu tout et n'importe quoi comme :
  4. [cpp]
  5. unsafe
  6.         {
  7.             char[] g = new char[100];
  8.             uint toto;
  9.             fixed (char* p = g) toto = PowerGetActiveScheme(0, (void **) &p);
  10.         }


 
Et ce code ne compile pas : Impossible de prendre l'adresse d'une variable locale en lecture seule
 
Comment faire pour créer et passer un double pointeur et importer des fonctions c++ avec des types inconnus en c#?
 
Merci

mood
Publicité
Posté le 27-05-2007 à 00:05:06  profilanswer
 

n°1565749
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-05-2007 à 01:03:06  profilanswer
 

Non non non, là tu fais n'importe quoi !
La conversion des types C++ en types C# se fait par Marshalling. Autant te le dire de suite : c'est un bordel sans nom, mais c'est faisable et ça fonctionne.
Jette donc un oeil ici :
http://nico-pyright.developpez.com [...] 5/interop/
http://www.pinvoke.net/
http://msdn2.microsoft.com/fr-fr/l [...] S.80).aspx
http://msdn2.microsoft.com/en-us/l [...] S.71).aspx

n°1565800
AsTro
Posté le 27-05-2007 à 12:46:53  profilanswer
 

Ok merci je vais regarder ces liens.
Je me doutais que je faisais n'importe quoi  :whistle:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Intégration de code C++ en C#

 

Sujets relatifs
exécution de scripts SQL depuis du code PHPEnvoyer un code clavier vers RS232 ou usb ?
VB 2005 Express -> demande code pour executer un BATCH[Resolu] VB 2005 Express -> demande code pour écrire ds le Registre
code source des classe de la bibliothèque MFC C++recherche code pour ouverture de popup
Code VBA ouverture fichier!!Code Radio Web
Probleme d'installation code block sous UbuntuProbleme FCKeditor (code source image)
Plus de sujets relatifs à : Intégration de code C++ en C#


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR