Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Modérateur
    Avatar de le fab
    Homme Profil pro Fabien Grand-Perret
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    792
    Détails du profil
    Informations personnelles :
    Nom : Homme Fabien Grand-Perret
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : mars 2005
    Messages : 792
    Points : 1 242
    Points
    1 242

    Par défaut actXserver & windows 64 bits

    Hello

    Bon désolé je pose une question sans même avoir pris le temps de chercher, mais bon, je suis un peu pris par le temps

    bref, j'ai un ensemble de fonctions qui me permettent (via des actXserver) d'ouvrir des fichiers offices, d'écrire dedans ... etc ...
    ensemble de fonction qui marchaient jusque là

    mais depuis que je suis passé sous windows 64 bits, c'est des soucis
    je suppose que c'est le passage à windows 64 bits car j'ai réinstallé la même version d'office (2007) et de matlab (2011b)

    bref, avant un objet com sur un document office avait cette gueule là :
    Code :
    Interface.Microsoft_Excel_9.0_Object_Library._Workbook
    (repris sur la doc matlab, correspond pas forcement à mon pb)

    maintenant il a cette gueule là :
    Code :
    Interface.0002096B_0000_0000_C000_000000000046
    sic ...
    en fait tout le code dont je dispose pour traiter ces objets ne marche plus

    est ce que quelqu'un a été confronté à ce problème ? et connais une solution ? (j'aimerais retourner sur un "adressage" comme avant )

    Bon, re désolé de poser une question alors que j'ai même pas cherché 5 minutes ... je pars en recherche d'une solution en espérant qu'entre temps quelqu'un qui sait soit passé par là ;-)

    Merci
    fab

  2. #2
    Dut
    Dut est déconnecté
    Rédacteur/Modérateur

    Avatar de Dut
    Homme Profil pro Jérôme Briot
    Ingénieur hospitalier
    Inscrit en
    novembre 2006
    Messages
    17 361
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme Briot
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2006
    Messages : 17 361
    Points : 44 751
    Points
    44 751

    Par défaut

    Je ne vois pas très bien pourquoi tu devrais te soucier de ce nommage interne.

    Pourrais-tu nous montrer un exemple simple de code qui ne fonctionne plus en nous disant ce qu'il est censé faire ?
    Sur mon blog : Gestion des cartes graphiques NVIDIA dans MATLAB : le NVIDIA System Management Interface

    Ma page personnelle avec mes contributions MATLAB (R2011b/R2014a - Windows, Linux et Mac) et Hardware

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Modérateur
    Avatar de le fab
    Homme Profil pro Fabien Grand-Perret
    Développeur informatique
    Inscrit en
    mars 2005
    Messages
    792
    Détails du profil
    Informations personnelles :
    Nom : Homme Fabien Grand-Perret
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : mars 2005
    Messages : 792
    Points : 1 242
    Points
    1 242

    Par défaut

    bah, c'est assez simple en fait
    dans le code de certaines fonctions on passe en parametre une interface qui peut être soit une interface de l'objet document soit une interface d'un sous objet de ce document ...
    alors pour départager, on décompose cet objet interface retranscrit en string (fonction class) et on compare avec des opérateurs type strcmp
    pas forcement hyper propre, mais bon ... (je suis pas l'auteur de ces fonctions, je les utilise, et je suis incompétent en COM)

    bref, j'ai trouvé une parade, par exemple pour savoir si l'objet passé en argument correspond à un document ou à une sélection (dans le document)
    j'ai remplacé quelque chose comme
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    shCOM = class(hCOM);
    idx = strfind(shCOM,'.');
    if strcmpi(shCOM(idx(end)+1:end),'Selection')
       ...
    elseif strcmpi(shCOM(idx(end)+1:end),'_Document')
       ...
    else
       ...
    end
    par :
    Code :
    1
    2
    3
    4
    5
    6
    7
    if strcmp(class(hCOM),class(hCOM.Parent.Selection))
        ...
    elseif  strcmp(class(hCOM),class(hCOM.Document))
        ...
    else
        ...
    end
    ça marche dans mon cas, mais je suis pas sur que ça soit identique dans tous les cas de figures (je maîtrise pas du tout l'arborescence COM) même si sur le papier ca me parait un poil plus propre (et surtout compatible avec des changement de nommage)

    mais bon, le plus simple pour moi serait de pouvoir retomber sur le nommage d'origine afin de ne pas aller modifier plusieurs fonctions

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •