begin process at 2012 02 10 02:16:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Mélanger code managé et non managé


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

Mélanger code managé et non managé

samedi 19 avril 2008 à 15:32:47 | Mélanger code managé et non managé

fred_82

Bonjour,

Je souhaiterais mélangé du code managé et du code non managé mais je n'y arrive pas.
pour avoir un classe non managé, il suffit pourtant de créer une classe de cette façon
class X{
...
}
mais le probleme vient lorsque que je veux utiliser des fonctions de l'API windows, car le compilateur me dit que les fonctions n'éxiste pas.

j'ai donc utiliser DllImportAttribute, cela fonctionne mais pour la fonction capDriverConnect, je ne sais pas dans quel dll elle se trouve.

Donc y'a t'il un moyen d'utilisé les fonctions de l'API windows dans du code C++/CLI non managé sans DllImportAttribute sinon comment faire pour savoir dans quel dll se trouve capDriverConnect 

Merci
samedi 19 avril 2008 à 17:37:39 | Re : Mélanger code managé et non managé

gamemonde

Membre Club
capDriverConnect est une macro et non une fonction

#define capDriverConnect(hwnd, i) ((BOOL)AVICapSM(hwnd, WM_CAP_DRIVER_CONNECT, (WPARAM)(i), 0L))
#define AVICapSM(hwnd,m,w,l) ( (IsWindow(hwnd)) ? ::SendMessage(hwnd,m,w,l) : 0)

donc ta fonction peux fonctionner en fesant qu'un sendmessage
samedi 19 avril 2008 à 18:11:21 | Re : Mélanger code managé et non managé

fred_82

J'ai fait ce que tu m'as dit mais le probleme est que WM_CAP_DRIVER_CONNECT n'est pas rconnu.
Voici mon Code

#include

<windows.h>

#include

<Vfw.h>

#include

<stdio.h>

#include

<stdlib.h>

#include

"stdafx.h"

#include

"WebCam.h"

using

namespace System::Runtime::InteropServices;

//Vfw32.dll

[DllImportAttribute(

"avicap32.dll" ,CharSet=CharSet::Auto)]

extern

"C" HWND capCreateCaptureWindow(

LPCSTR lpszWindowName,

DWORD dwStyle,

int x,

int y,

int nWidth,

int nHeight,

HWND hWnd,

int nID

);

/*[DllImportAttribute("AVICap.dll",CharSet=CharSet::Auto)]

extern "C" BOOL capDriverConnect(

HWND,

unsigned char

);*/

void

CWebCam::Connect()

{

// Connexion à la web cam

hWnd_WC = capCreateCaptureWindow(

"handle" , WS_CHILD | WS_VISIBLE,

CAM_MARGE, CAM_MARGE, CAM_WIDTH, CAM_HEIGHT, hWnd, 1) ;

// Vérifie la connection

if (!SendMessage(hWnd,WM_CAP_DRIVER_CONNECT,CAM_WIDTH,CAM_HEIGHT))

//if(!capDriverConnect(hWnd_WC,0))

exit(0);

// trouve le Device Context

//hDC_WC=GetDC(hWnd_WC);

}

Mes options de compilation sont \clr

Qu'est ce que je fais de mal?

samedi 19 avril 2008 à 19:30:43 | Re : Mélanger code managé et non managé

gamemonde

Membre Club
#define WM_CAP_DRIVER_CONNECT           (WM_CAP_START+  10)
WM_CAP_START =     WM_USER                 = 0x0400

je sais pas pourquoi qu'il n'est pas reconnu

mais je ne fai jamais de code manager en esperant que tu reussises

samedi 19 avril 2008 à 20:01:40 | Re : Mélanger code managé et non managé

fred_82

non aucun moyen de faire fonctionner ca!


Cette discussion est classée dans : code, classe, fonctions, mélanger, managé


Répondre à ce message

Sujets en rapport avec ce message

pourkoi pointeur vers classe ? [ par Arkko ] Quelquun peut m'expliquer pourquoi ce code cree un pointeur NULL vers un classe et apres quil declare un variable de type cMyD3dApplication et met une CObject [ par ifren ] salutj'ai un petit probleme,bon j'ai une classe data qui herite de la classe CObject, jusque la normalj'ai un tel codeData::Data(): // Copie de l'obje classe derivee de template [ par payen ] Salut a tous,juste une petite question sur les template et les classes derivees ... j'ai donc une classe template declarre comme suit: Envoi de classe avec send [ par piemur2000 ] Bonjour,Je voudrai envoyer une classe grace à un send.Par exemple cette classe :class Donnees{ int Type; int Taille; d Abus de "protected" dans les classes ? [ par Galmiza ] Salut cher lecteur,Voici un exemple de ce qu'on voit assez souvent dans les codes, mais dont je ne saisi pas l'utilité:Dans une classe, protection des [API][WIN32] Enregistrement de classe de fenêtre [ par Jeffray ] Bonjour,J'ai un problème pour enregistrer une classe de fenêtre.J'utilise GetClassInfoEx() pour extraire les infos de la classe EDIT créée par Windows Classe abstraite et fonctions [ par matge ] BonjourJe possede une classe abstraite dans une librairie .h qui se nomme RTPTRANSMITTERCelle ci possede une fonction INIT(bool Threadsafe)Comment d opengl bug [ par darmoor ] Voila je vien de debuter dans l'openGL et selon le tutorial jai fait ce qu'il falai et sa me marque une erreur:le code:#include #includ heritage de fonctions [ par jfk20004 ] Comment fait on lorsqu'on a definie une classe A qui herited'une autre B pour appeler les fonctions de la classe de base A pour qu'elles soient utili Indicateur code natif ou managé en VC++ .NET [ par hherry ] Bonjour,Je souhaite compiler une DLL (développée sous VC++ 6) en 100% managé avecVC++ .NET 2003. Je n'ai pas droit à l'erreur car c'est pour une appli


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 1,232 sec (3)

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