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 :

creation dll et wmf


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut creation dll et wmf
    Bonjour,

    voilà j'essaye de creer un fichier .wmf mais sans utiliser les choses specifiques a microsoft (avec Graphics et Metafile)
    J'aimerai creer une dll pouvant etre distribuer "sans dependance" (si ce n'est avoir windows ) : juste envoyer le dll et c'est tout.

    Creer une dll avec des fonctions dedans => ca ok

    maintenant j'aimerai creer un fichier wmf... et à par avec un Metafile du .Net je ne sais pas comment faire !!!

    merci de votre aide

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    tu veux le faire sous quel os ?

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    je suis sous windows XP et j'aimerai une dll qui soit diffusable sur les windows XP .

    J'ai vu en incluant "windows.h" avec la methode CreateMetaFile mais j'ai un link error :

    exportIMG.obj : error LNK2001: symbole externe non résolu "extern "C" struct HDC__ * __stdcall CreateMetaFileW(wchar_t const *)" (?CreateMetaFileW@@$$J14YGPAUHDC__@@PB_W@Z)
    merci

    P.S: oups j'avais oublié d'ajouter gdi32.li : donc l'erreur de LINK c'est réglé

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Tu lies à Gdi32.lib ? (libgdi32.a pour MinGW)

    PS: Il n'y a pas l'air d'y avoir du .Net, là-dedans...

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    nop en fait avant j'utilisait .NET avec un gcnew Metafile(..)

    Maintenant j'ai vu un CreateMetaFile : est ce mieux avec ce que je veux ?



    D'ailleur petit prob :

    j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hDCMeta = CreateMetaFile( (LPCWSTR) "test.wmf");
    mais le nom du fichier qu'il me crée est ecrit en chinois/japonais (au choix) !!!!

    QQun connait il un tuto sur cette methode ? car là je ne vois pas !!!

    merci

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Déjà, on ne caste JAMAIS une chaîne littérale : S'il faut un cast, c'est qu'elle n'est pas du bon type, et c'est le pointeur qu'on caste ---> Tu aurais pu causer un plantage.

    Ici, je pense que le mieux est d'y aller en TCHAR (<windows.h>, <tchar.h>) :
    Code C/C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    hDCMeta = CreateMetaFile( TEXT("test.wmf") );

    Si ça ne marche pas et qu'il te faut absolument un LPCWSTR au lieu d'un LPCTSTR, tu utilisera L"test.wmf"

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2002
    Messages
    291
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 291
    Points : 81
    Points
    81
    Par défaut
    ok j'en prends note

    par contre je ne connais pas le type "LPCWSTR"

    quel est le meilleur moyen à partir d'un "string" de convertir en LPCWSTR ?

    merci

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    LPCWSTR == const wchar_t *
    LPCSTR == const char *
    LPCTSTR == L'un des deux, selon le mode. (TCHAR == char ou wchar_t)

    "abc" est une suite de char.
    L"abc" est une suite de wchar_t.
    TEXT("abc") est l'un des deux, selon le mode.

    Pour convertir avec les objets C++, tu as en C++ standard:
    std::string == std::basic_string< char >
    std::wstring == std::basic_string< wchar_t >
    (par contre, il n'y a pas de typedef pour les strings de TCHAR).

    Pour convertir de l'un à l'autre, tu peux utiliser des ostringstream et wostringstream : L'opérateur d'insertion de flux accepte toujours les deux formats, donc avec un wostringstream tu peux convertir une string en wstring.
    Et la foncton membre wstring::c_str() te donnera un const wchar_t *, donc un LPCWSTR.

Discussions similaires

  1. Réponses: 9
    Dernier message: 27/02/2009, 10h38
  2. Creation DLL réutilisable avec WinDEv
    Par CTotophe85 dans le forum C++
    Réponses: 2
    Dernier message: 09/09/2008, 16h25
  3. Creation dll et utilisation dans appli C#
    Par moulefrite dans le forum Windows Forms
    Réponses: 5
    Dernier message: 19/08/2008, 09h46
  4. probleme creation dll
    Par devin59 dans le forum C#
    Réponses: 3
    Dernier message: 21/01/2008, 20h54
  5. creation DLL dev-cpp
    Par gaut dans le forum Dev-C++
    Réponses: 4
    Dernier message: 29/01/2004, 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