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

Visual C++ Discussion :

[COM] Threading Model Excel


Sujet :

Visual C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 24
    Points
    24
    Par défaut [COM] Threading Model Excel
    Bonjour,

    J'ai un composant COM in-process (une dll) que j'ai cree a l'aide d'ATL. Le threading model de ce composant est un STA.

    Le client est un module VBA dans un add-in Excel. L'idee c'est d'utiliser les fonctions c++ du composant directement depuis Excel, avec une couche VBA
    servant de wrapper. Ca marche bien mais j'ai une question concernant l'appel des fonctions entre le client VBA et le composant C++.
    D'apres ce que j'ai compris, si le composant et le client on le meme threading model, les appels des fonctions sont fait directement. Si ils sont differents, ils passent via les proxy/stub. Donc je voudrais connaitre le threading model d'Excel, pour savoir si mes appels sont faits directement ou si ils passent via la dll de proxy/stub generee par ATL ? Est ce que le threading model souhaite pour le client doit directement etre specifie dans un module VBA ? ou y en a il un par defaut ?

    Merci d'avance pour vos reponses !

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    La réponse est simple: Excel peut être utilisé ou contenir des objets OLE, et OLE ne marche qu'en STA.

    D'une manière générale, la plupart des objets et applications Microsoft marchent en STA, y compris le shell. Parmi les exceptions figurent les IconHandlers, qui peuvent être free-threadés (ThreadingModel=Both, utilisent le Free-Threaded Marshaller), et bien sûr les streams utilisés lors du marshalling.
    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.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Points : 24
    Points
    24
    Par défaut
    Merci beaucoup! C'est bon a savoir

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

Discussions similaires

  1. Recupérer valeur des ports COM (rs232) dans excel
    Par Dam1988 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/08/2010, 00h02
  2. Precision d'une Assembly .Net (COM) modifiée par EXCEL
    Par Bertrand Larat dans le forum Windows Forms
    Réponses: 0
    Dernier message: 18/12/2008, 17h18
  3. problème de Threads avec Excel
    Par ooxoo dans le forum MFC
    Réponses: 3
    Dernier message: 15/05/2008, 22h55
  4. lancer un modele excel en vba
    Par benoit_iund dans le forum VBA Access
    Réponses: 3
    Dernier message: 13/06/2007, 11h17
  5. [VBA-E] Thread VBA Excel
    Par mimic50 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/02/2007, 17h35

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