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 :

Appel de fonction C# depuis du code C++


Sujet :

C++/CLI

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 6
    Points
    6
    Par défaut Appel de fonction C# depuis du code C++
    Bonjour,

    J'espère poster dans le bon forum !

    Voici ma question :

    J'ai un code en C++, c'est un filtre directshow.

    J'aimerai intégrer une méthode codée en C# au sein de ce filtre.

    Est-il possible d'appeler cette méthode C# depuis une méthode C++, le tout en passant des arguments vers la méthode en C# ?

    J'imagine que grâce au CLR c'est possible, mais j'ai quand même un doute...

    Merci !

    Guillaume

  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
    c'est une appli C++ native ? ou une appli managée en C++/CLI ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    C'est un projet C++ de visual 2003, converti en projet visual 2005... Je ne saurai pas dire si la conversion a donné un projet C++/CLI ?

  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
    ma question était de savoir si tu utilisais le framework.net dans ton appli C++
    il faudrait que tu regardes si tu as le mode de compilation /clr

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    J'ai changé le mode de compilation en /clr, et ça compile.

    Par contre j'ai pas mal d'avertissements, peuvent-ils poser problème ?

    Notamment le warning #24 qui a une sale tête !

    merci pour l'aide

    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
    Avertissement	1	warning C4793: '__asm' : entraîne la génération de code natif pour la fonction 'void *memchrInternal(const void *,int,size_t)'	C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Samples\Multimedia\DirectShow\BaseClasses\wxutil.h	391	
    Avertissement	2	warning C4793: 'vararg' : entraîne la génération de code natif pour la fonction 'HRESULT StringCchPrintfA(char *,size_t,const char *,...)'	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	2697	
    Avertissement	3	warning C4793: 'vararg' : entraîne la génération de code natif pour la fonction 'HRESULT StringCchPrintfW(wchar_t *,size_t,const wchar_t *,...)'	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	2719	
    Avertissement	4	warning C4793: 'vararg' : entraîne la génération de code natif pour la fonction 'HRESULT StringCbPrintfA(char *,size_t,const char *,...)'	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	2822	
    Avertissement	5	warning C4793: 'vararg' : entraîne la génération de code natif pour la fonction 'HRESULT StringCbPrintfW(wchar_t *,size_t,const wchar_t *,...)'	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	2847	
    Avertissement	6	warning C4793: 'vararg' : entraîne la génération de code natif pour la fonction 'HRESULT StringCchPrintfExA(char *,size_t,char **,size_t *,unsigned long,const char *,...)'	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	2982	
    Avertissement	7	warning C4793: 'vararg' : entraîne la génération de code natif pour la fonction 'HRESULT StringCchPrintfExW(wchar_t *,size_t,wchar_t **,size_t *,unsigned long,const wchar_t *,...)'	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	3007	
    Avertissement	8	warning C4793: 'vararg' : entraîne la génération de code natif pour la fonction 'HRESULT StringCbPrintfExA(char *,size_t,char **,size_t *,unsigned long,const char *,...)'	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	3152	
    Avertissement	9	warning C4793: 'vararg' : entraîne la génération de code natif pour la fonction 'HRESULT StringCbPrintfExW(wchar_t *,size_t,wchar_t **,size_t *,unsigned long,const wchar_t *,...)'	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	3187	
    Avertissement	10	warning C4996: '_vsnprintf': This function or variable may be unsafe. Consider using _vsnprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	5595	
    Avertissement	11	warning C4996: '_vsnwprintf': This function or variable may be unsafe. Consider using _vsnwprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	5635	
    Avertissement	12	warning C4996: '_vsnprintf': This function or variable may be unsafe. Consider using _vsnprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	5719	
    Avertissement	13	warning C4996: '_vsnwprintf': This function or variable may be unsafe. Consider using _vsnwprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.	C:\Program Files\Microsoft DirectX SDK (April 2007)\Include\strsafe.h	5871	
    Avertissement	14	warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated	C:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio	33	
    Avertissement	15	warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated	C:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio	37	
    Avertissement	16	warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated	C:\Program Files\Microsoft Visual Studio 8\VC\include\cstdio	40	
    Avertissement	17	warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated	C:\Program Files\Microsoft Visual Studio 8\VC\include\cstring	20	
    Avertissement	18	warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated	C:\Program Files\Microsoft Visual Studio 8\VC\include\cstring	21	
    Avertissement	19	warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated	C:\Program Files\Microsoft Visual Studio 8\VC\include\cwchar	34	
    Avertissement	20	warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated	C:\Program Files\Microsoft Visual Studio 8\VC\include\cwchar	35	
    Avertissement	21	warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated	C:\Program Files\Microsoft Visual Studio 8\VC\include\cwchar	37	
    Avertissement	22	warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated	C:\Program Files\Microsoft Visual Studio 8\VC\include\cwchar	39	
    Avertissement	23	warning C4101: 'bTemp' : variable locale non référencée	c:\Projects\VS\FiltreStores\FiltreModif.cpp	324	
    Avertissement	24	warning C4747: Appel de '_DllMain@12' managé : impossible d'exécuter du code managé lors du verrouillage du chargeur, y compris le point d'entrée de DLL et les appels accessibles à partir du point d'entrée de DLL	c:\Projects\VS\FiltreStores\FiltreModif.cpp	1

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    Bon, je viens de tester mon filtre directshow compilé en /clr, il n'aime pas du tout.

    J'ai supprimer le warning #24 avec ça :

    // C4747.cpp
    // compile with: /clr /c /W1
    // C4747 expected
    #include <windows.h>

    // Uncomment the following line to resolve.
    // #pragma unmanaged

    BOOL WINAPI DllMain(HANDLE hInstance, ULONG Command, LPVOID Reserved) {
    return TRUE;
    };

    Mais mon filtre n'aime toujours pas !

    Je vais essayer de résoudre les autres warnings en espérant que ça resolve mon problème...


    Guillaume

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    J'ai fais le tour de mes warnings, et je ne pense pas qu'ils soient la cause de mon problème.

    Ya-t-il une solution ? Merci !

  8. #8
    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
    ca veut dire quoi il aime pas du tout ?

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 42
    Points : 6
    Points
    6
    Par défaut
    Le code compil, mon fichier *.ax est bien généré, mais quand je remplace mon ancien filtre par celui-ci (la taille du fichier double au passage) le player vidéo plante directement dès qu'il utilise le filtre directshow en question.

    Je pense que je vais remplacer le code en C# par du C++, ce sera plus simple !

Discussions similaires

  1. Appeler fonction vbs depuis le code
    Par kstou2001 dans le forum VB.NET
    Réponses: 12
    Dernier message: 27/09/2013, 14h57
  2. Appeller une fonction Javascript depuis le Code VB
    Par chrislcf dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/08/2008, 12h41
  3. [Compilation] Appel d'une fonction C++ depuis du code C
    Par bladerunners dans le forum C++
    Réponses: 1
    Dernier message: 06/09/2006, 14h26
  4. [Info] Appeler une fonction Ada95 depuis Java
    Par mmathieu dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 15/09/2005, 09h42
  5. Comment appeler une fonction JavaScript depuis Delphi ?
    Par Alfred12 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 17/06/2005, 18h15

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