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# Discussion :

Déterminer si un HINSTANCE est une application c# ( MSIL) ? GetModuleHandle(NULL)


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut Déterminer si un HINSTANCE est une application c# ( MSIL) ? GetModuleHandle(NULL)
    Bonjour,

    Existe t'il un moyen en programmation pour déterminer si un HMODULE est une application MSIL (Net) ?
    Sachant que le HMODULE est obtenue par GetModuleHandle(NULL);

    Merci

  2. #2
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    une solution trouvée sur stackoverflow:
    Ouvrir l'invite de commande développeur de Visual Studio (Menu Démarrer > Visual Studio > Visual Studio Tools > Invite de commandes développeur pour VS2015) et utiliser la commande corflags

    corflags UNMANAGED.DLL
    ..you'll get:

    corflags : error CF008 : The specified file does not have a valid managed header

    ...whereas on a managed assembly, you'll get something like:

    Version : v2.0.50727
    CLR Header: 2.5
    PE : PE32
    CorFlags : 1
    ILONLY : 1
    32BIT : 0
    Signed : 0
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par nouanda Voir le message
    une solution trouvée sur stackoverflow:
    Ouvrir l'invite de commande développeur de Visual Studio (Menu Démarrer > Visual Studio > Visual Studio Tools > Invite de commandes développeur pour VS2015) et utiliser la commande corflags
    Excusez-moi j'ai mal formuler ma question.

    GetModuleHandle(NULL) retourne le HMODULE de l'application oui ,
    et je voudrais plutot savoir comment fair en programmation à partir de HMODULE si mon application est MSIL (c#) ou (C++).

    Voila.

    Merci

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    La réponse précédente n'est pas du tout bête..... ou alors tu décris vraiment très très mal ton problème !

    L'idée du Coreflag si elle est un poil approfondie pourrait t'amener à lire le .Net data_dictionary, s'il existe alors code managé sinon Unmanaged. Pour corroborer mes propos il y a cette piste à suivre :

    http://stackoverflow.com/questions/1...bly-in-c-sharp

    Dans leur cas ils chargent le fichier mais tu peux tout aussi bien travailler avec le hinstance ou le hmodule.

    La grande ligne directrice c'est PE (portable Executable format).

    ++

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    J'ai pu me débrouiller.

    J'ai une question si je fais un getmodulehandle("mscoree") -> est ce correcte (pour détecter le .net) ?

    Grand Merci.

  6. #6
    Membre confirmé
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Points : 627
    Points
    627
    Par défaut
    Citation Envoyé par wallace1 Voir le message
    La réponse précédente n'est pas du tout bête..... ou alors tu décris vraiment très très mal ton problème !
    A ma décharge, quand j'ai écrit la réponse, la question était de savoir si une dll était managed ou unmanaged...
    " Entre le Savoir et le Pouvoir, il y a le Vouloir "

    Desole pour les accents, je suis en QWERTY...

  7. #7
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par nouanda Voir le message
    A ma décharge, quand j'ai écrit la réponse, la question était de savoir si une dll était managed ou unmanaged...
    on est d accord et c est bien ce que je comprends encore aujourd'hui finalement.... nan ??


  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    905
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Mai 2011
    Messages : 905
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par nouanda Voir le message
    A ma décharge, quand j'ai écrit la réponse, la question était de savoir si une dll était managed ou unmanaged...
    La prochaine fois j'ouvrirais un autre thread

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/02/2009, 19h05
  2. Déterminer l'origine d'un message
    Par sovitec dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 18/01/2008, 12h19

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