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

Windows Discussion :

Programmation OLE sur Dev C++


Sujet :

Windows

  1. #21
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Open existe bel et bien dans la doc et je l'ai utilisé en VB.
    Il va falloir utiliser IDispatch alors...

  2. #22
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Quelqu'un aurait des idées ?
    Quel langage serait le mieux pour coder cette appli ?

  3. #23
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    J'ai besoin d'utiliser un type LPCTSTR (char *) pour une de mes méthodes, puis je utiliser un langage de script ? Jscript et VBscript ne permettent pas l'utilisation de ce type apparament.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    LPCTSTR est TCHAR const *, qui peut être char const * ou wchar_t const * selon le mode.
    Essaie ceci: définis les macros UNICODE et _UNICODE dans tes headers, et les TCHAR deviendront des wchar_t.

    Je ne connais pas les langages de script, mais il y a fort à supposer qu'ils marchent uniquement en unicode. Si le composant marche avec le programme C en unicode, il devrait marcher avec le langage de script.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #25
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Sachant que j'utilise les scripts (jscript et vbscript) avec WSH si possible, je ne sais pas si je peux définir ce que tu me dis. Plus simplement, peut on faire un char* en jscript ?

    ma méthode retourne plusieurs variables par le biais des paramètres et l'une d'elle est un LPCTSTR out. En vb il m'a suffit de déclarer la variable en ByRef.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Je dis que normalement, un composant OLE accepte toujours des chaînes unicode (wchar_t *) et parfois aussi des chaînes non-unicode (char *).

    Sachant que les scripts sont toujours en unicode, tu ne devrais pas avoir vraiment besoin de char*.

    Quelle est exactement la fonction qui demande un LPCTSTR, et où est-elle déclarée (quelle DLL, quelle classe/interface, etc).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #27
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Ok

    Donc en fait, pour remettre tout dans son contexte, le script que je tente de faire en C, je l'avais tenté en jscript et vbscript. Le problème a été que je n'arrivais pas a avoir les bons types pour ma fonction. J'ai donc utilisé vba pour avoir le ByRef.

    Voici la doc pour ma fonction :

    long GetAddressResult(long in_iResult, LPCTSTR *out_strAddress, double *out_dLati, double *out_dLongi)

    Recupère les informations des adresses trouvées.


    Paramètres :

    in_iResult : index de la réponse.
    out_strAddress : adresse trouvée.
    out_dLati : position en latitude WGS84 de l’adresse trouvée.
    out_dLongi : position en longitude WGS84 de l’adresse trouvée.


    Valeur de retour :

    Retourne 1 si OK, -1 si erreur.


    Voici mon code complet en jscript [Utilisé avec CScript ou WScript]

    Code JScript : 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
    25
    26
    27
    28
    var res1;
    var res2;
    var res3;
    var pays, ville, cp;
    var pays = "France";
    var ville = "alès";
    var cp = "30100";
    
    var WShell,LoxAd;
    var WShell = WScript.CreateObject("WScript.Shell"); //Création objet Shell pour les popups et input éventuelles
    var LoxAd = WScript.CreateObject("LoxanePro.lxwOLEAddress");//Création de l'objet OLE LoxAd
    
    res1 = LoxAd.SelectDatabase(0,pays); //Sélection du pays (ca marche)
    res2 = LoxAd.SetEditAddress(0,0,ville);//Sélection de la ville (ca marche)
    res3 = LoxAd.SetEditAddress(0,1,cp);//Sélection du code postal (ca marche)
    LoxAd.SearchAddress();//lancement recherche
    
    do {}
    while (LoxAd.GetSearchAddressState()!=1); //attente fin de la recherche
    
    var number = LoxAd.GetAddressResultCount(); //retourne le nombre de résultat (ici 33)
    WShell.popup(number); //affiche le résultat
    var adresse;
    var lati;
    var longi;
    LoxAd.GetAddressResult(0,adresse,lati,longi); //la ça bloque
    
    WShell.popup(adresse);

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Ta fonction, je ne la trouve que dans l'IDL, et elle ne prend pas en paramètre un LPCTSTR, mais un pointeur vers une BSTR (BSTR*, ce qui correspond en VB à ByRef String)
    Code IDL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                [id(0x0000000a)]
                long GetAddressResult(
                                long in_iResult, 
                                BSTR* out_strAddress, 
                                double* out_dLati, 
                                double* out_dLongi);
    Désolé pour jscript et vbscript, je ne les connais pas, donc j'ignore s'ils ont un équivalent à ByRef.

    PS: En C, pour les BSTR, on utilise des fonctions dédiées : voir SysAllocString() et ses soeurs.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #29
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    D'accord Je parlais de LPCTSTR car c'est marqué dans la doc mais pour moi c'est un char*... et c'est bien un ByRef String que j'ai fait en VB.

    Merci beaucoup pour toutes tes réponses

  10. #30
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    J'ai résolu le problème. J'ai codé tout ça dans visual basic 2005 express et ça fonctionne très bien. Connexion aux objets OLE en une ligne.
    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 14
    Dernier message: 27/10/2006, 13h08
  2. Programme fonctionnant sur Eclipse mais pas avec le jar?
    Par kirik dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 10/02/2004, 13h43
  3. Réponses: 11
    Dernier message: 17/03/2003, 10h56
  4. Lancer un programme, mais sur une autre machine
    Par GOUGOU1 dans le forum Réseau
    Réponses: 12
    Dernier message: 08/12/2002, 20h36

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