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++Builder Discussion :

Utilisation du composant ActiveX acroPDF


Sujet :

C++Builder

  1. #1
    Membre expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Points : 3 249
    Points
    3 249
    Par défaut Utilisation du composant ActiveX acroPDF
    Bonsoir,

    Voilà je cherche à utiliser le composant ActiveX de adobe acrobat reader 7 sous builder. Il est installer et il marche.

    Mon problème vient à l'utilisation: Je suis débutant ence qui concerne les composant activeX. J'ai mis le composant créé sur la fiche, le programme compile.

    Au niveau du code - dans un bouton j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AcroPDF->LoadFile("C:\\test.pdf");
    La il me met une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [C++ Erreur] Unit1.cpp(21): E2034 Impossible de convertir 'char *' en 'wchar_t *'
      [C++ Erreur] Unit1.cpp(21): E2342 Mauvaise correspondance de type dans le paramètre 'fileName' ('wchar_t *' désiré, 'char *' obtenu)
    C'est quoi le fichier wchar_t ? Quelqu'un sait comment l'utiliser correctement ?


  2. #2
    Membre actif
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Points : 279
    Points
    279
    Par défaut
    C'est quoi le fichier wchar_t ?
    char * , designe une chaine de caractère ASCII , generalement un alphabet latin ( anglais français,allemand,iltalien...)

    wchar_t * (wide char) designe une chaine de caractère UNICODE ( alphabet latin,arabe, cyrllique , chinois, etc...), elle est donc utilisée dans les programmes internationaux.( comme acrobat )


    sur le forum C++ , on te repondra sûrement que pour initialiser un wchar_t *
    il faut faire comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wchar_t * wpath = L"C:\\test.pdf";
    AcroPDF->LoadFile(wpath );

    en BCB, grâce à la VCL, on peut faire autrement, notamment grâce au type WideString (norme de caractère UNICODE), l'équivalent de AnsiString (norme de caractère ANSI)

    ainsi de même que l'on transforme un AnsiString en char * en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    AnsiSitring str = "toto";
    char * s = str.c_str();
    on peut faire l'équivalent UNICODE en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            WideString Ws("C:\\test.pdf"");
            wchar_t *wpath=  Ws.c_bstr();
            AcroPDF->LoadFile(wpath );
    ceci est plus clair et plus facile pour une utilisation avec les composants BCB:

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //ouverture d'une boite de dialogue
    if(OpenDialog1->Execute())
    {
       AnsiString Filename = OpenDialog1->FileName; //AnsiString
       WideString WPath(Filename.c_str());    //transformation AnsiString en WideString via un char *
       AcroPDF->LoadFile(WPath.c_bstr());     //transformation du WideString en w_char_t *
     
    }

  3. #3
    Membre expert
    Avatar de Faith's Fall
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 740
    Points : 3 249
    Points
    3 249
    Par défaut
    C'est bon sa marche

    Problème résolu.

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    merci beaucoup de votre aide

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/11/2011, 15h33
  2. Réponses: 0
    Dernier message: 12/03/2011, 14h53
  3. Composant ActiveX (VB) utilisable dans VC++
    Par Micromalice dans le forum Visual C++
    Réponses: 1
    Dernier message: 25/08/2006, 10h13

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