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 :

Interface pour S7-PROSIM [Interface]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 22
    Par défaut Interface pour S7-PROSIM
    Bonjours à tous,

    Quelqu'un aurait t'il developpé une interface utilisant la dll
    Siemens S7-PROSIM (S7WSPSMX.dll). Je serais interressé par
    un exemple de code permettant d'importer les fonctions de cette dll.
    (S7-PROSIM permet de simuler via le logiciel PLC SIM le comportement d'un automate programmable Siemens).

    Merci par avance

    Cdlt

    EricNO

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Hello,

    Je n'ai jamais bossé avec ce produit Siemens là, mais à vue de pif y'a deux approches:

    - Soit tu installes tu génères un composant à partir de l'ActiveX (sous Builder 2010: menu Composant->Installer un composant->Importer un contrôle ActiveX)
    Une fois le composant installé, tu pourras bosser avec directement.

    - Soit tu as déjà des .h fournis avec, et tu pourras bosser directement avec l'objet COM à coups de CoCreateInstance et autres joyeusetés.

    Qu'est ce que tu as sous la main ? Au moins des exemples d'utilisation avec VB ou .net, non ? Peut-être un exemple sous Visual C++6.0 ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 22
    Par défaut exemple en VC++ 6.0
    Hello,

    J'ai effectivement trouvé un exemple en VC++ 6.0, les seuls fichiers dont je dispose est cette dll (S7wspsmx.dll) et une doc pdf avec le détail des fonctions. Comment faire une déclaration équivalente en C++Builder 6.0 et comment disposer des fonctions de cette
    dll?


    exemple en VC++ 6.0 :

    Code : 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
    // la bibliothèque/tlb ProSim est dans la dll
    #import <S7wspsmx.dll> named_guids, no_namespace//interfaces brutes uniquement
    class ProSimWrapper
    {
    public:
    ProSimWrapper() : m_pProSim(OLESTR("S7wspsmx.S7ProSim"), NULL,
    CLSCTX_INPROC_SERVER)
    {}; // le pointeur intelligent est automatiquement créé
    // dans la pile au démarrage de l'application
    virtual ~ProSimWrapper()
    {}; // pas d'implémentation, le pointeur intelligent est
    // automatiquement libéré à l'arrêt de l'application
    IS7ProSim * GetPtr()
    {
    return m_pProSim;
    };
    // Attributs
    protected:
    // IProSimPtr est un pointeur intelligent CComPtr vers l'interface IProSim
    // Il vient du fichier dll de #import
    // CoCreateInstance sera appelé automatiquement dans l'objet
    // pointeur dans le constructeur de cette classe
    // la libération de pointeur (release ptr) est automatiquement
    // appelée par le destructeur de cette classe
    IS7ProSimPtr m_pProSim;
    };
    Merci par avance

    cdlt

    EricNO
    Images attachées Images attachées

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Donc tu n'as pas de .h fourni avec, c'est bien ça ?

    Essayes la 1ère idée que je te proposais (si tu ne voies pas ta dll dans la liste affichée par builder dans l'assistant d'importation, c'est que la dll n'a pas été enregistrée via un regsvr32).

    Tel quel, je doutes que l'exemple de code fourni avec ta doc compile directement sous Builder, mais on ne sait jamais... Regardes aussi ceci.

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    EricNo, tu as pourtant une belle doc, avec comme 1ère ligne "S7ProSim fournit un objet COM qui donne accès..."

    As-tu déjà utilisé un Objet COM ?
    Sais-tu ce qu'est un Objet COM ?
    As-tu cherché sur le Net ce qu'était un Objet COM ?
    As-tu même lu cette phrase dans ta Doc ?

    les liens de totoche sont interessants !
    Selon la version de Delphi, l'accès au menu est different !

    Delphi 3 à 7 : Menu Projet | importer une bibliothèque de type
    Delphi 2007+ : Composants | Importer des Composants | importer une bibliothèque de type

    Dans les Deux cas, si ton objet n'est pas dans la liste (ou que tu ne trouves le nom), le bouton ajouter te permettra d'inclure ta DLL (équivalent d'un RegSvr32)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 22
    Par défaut Objet COM
    Hello,

    Je vois à peu prés ce qu'est un objet COM.
    j'utilise C++Builder V6.0
    Dans le menu importer un activeX je ne trouve pas ma dll.

    donc j'ai essayé de la charger en utilisant les fonctions loadlibrary et freelibrary (je récupère bien le HANDLE de le fonction).

    puis j'ai fais un GetProcAdress (HANDLE et non d'une fonction) et pour l'instant je récupère un pointeur NULL.

    "quand j'ouvre directement la dll depuis C++Builder
    je vois bien la structure S7WSPSMX.LIB avec ses fonctions, ses évenements"
    mais je ne sais pas récuperer ce .LIB

    Y-a t'il une méthode plus simple ?

    EricNO

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

Discussions similaires

  1. Une interface pour Oracle ?
    Par Vangel dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 25/02/2005, 17h58
  2. interface pour bdd
    Par toto14 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 08/10/2004, 11h12
  3. Interface pour Tablette Graphique
    Par marzizou dans le forum C++Builder
    Réponses: 3
    Dernier message: 22/06/2004, 11h44
  4. Comment créé une "interface" pour mes programmes??
    Par alcazar dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 09/02/2004, 13h02
  5. interfaces pour Filtres DirectShow
    Par Chupakabra dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2003, 14h54

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