IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

Utilisation de type Manager dans un composant COM


Sujet :

C++/CLI

  1. #1
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut Utilisation de type Manager dans un composant COM
    Bonjour,
    Apres avoir lue pas mal de doc dont http://www.codeproject.com/dotnet/cominterop.asp

    Je bloque sur mon probleme : j'aimerai utilisé le type System.Drawing.Bitmap dans une interface COM ecrit en C++/IDL.
    J'ai un importlib("System.Drawing.tlb"); dans mon fichier IDL. Mais le type _Bitmap n'est pas reconnue.

    Merci pour ttes infos.
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu as créé le tlb avec tlbexp ?

  3. #3
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Non je n'utilise pas tlbexp.

    Je developpe un composant DCOM en C++, pour etre utiliser dans un autre project C#.
    Le source de mon IDL parlera mieu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    import "oaidl.idl";
    import "ocidl.idl";
    import "unknwn.idl";
     
     
    [ uuid(00000000-7B11-46c2-A8A7-BA5F91EF3801),
      helpstring("_My Type Library"),
      version(1.0) ]
    library ComMyLib
    {
    	importlib("stdole2.tlb");
    	importlib("System.Drawing.tlb");
            interface _Bitmap;
    	[ odl,
    	 uuid(00000000-7B11-46c2-A8A7-BA5F91EF3800),
    	 oleautomation,
    	 dual ]
    	interface IComMy : IDispatch
    	{
    		[id(1)]	HRESULT	open([in] BSTR filename );
    		[id(2)]	HRESULT	close();
    		[id(3),propget] HRESULT totalFrame([out, retval] DWORD *num);
    		[id(4),propget] HRESULT frameRate([out, retval] DWORD *fps);
    		[id(5),propget] HRESULT image([out, retval] Bitmap**ppImage);
    	};
     
    	[ uuid(00000000-7B11-46c2-A8A7-BA5F91EF3802) ]
    	coclass ComMy
    	{
    		[default] interface IComMy;
    	}
     
    };
    Et c'est le type Bitmap qui n'est pas reconnu.
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu as essayé en regénérant le tlb de System.Drawing ?

  5. #5
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Que veut tu dire pas regenérer et pourquoi ?
    Je possede bien System.Drawing.tlb dans le framework dotNet.
    Si je redefinis Bitmap en recopiant la definition ecris dans System.Drawing.tlb, le compilateur C# me dit qu'il ne peut faire un cast car pour lui c 2 definitions differante !
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/06/2014, 17h56
  2. [COM] utiliser la librairie standard dans une dll COM
    Par kacedda dans le forum Visual C++
    Réponses: 5
    Dernier message: 13/03/2008, 14h57
  3. Réponses: 1
    Dernier message: 17/10/2006, 17h17
  4. utilisation du help file dans les composants de la VCL
    Par SOPRA-Eherve dans le forum C++Builder
    Réponses: 1
    Dernier message: 28/09/2006, 22h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo