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 :

Client OPC DA sous Borland c++ & c++ Builder


Sujet :

C++Builder

  1. #1
    Membre du Club
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2019
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2019
    Messages : 7
    Par d�faut Client OPC DA sous Borland c++ & c++ Builder
    Bonjour,

    je code un logiciel sous Borland C++ qui utilise une DLL OPC cr�� sous C++ Builder.

    Cette DLL est permet d'utiliser les fonctions sous Borland.

    Logiciel : Simulateur de partie op�rative automate

    Les �tapes du client OPC sont les suivantes:

    Int�gration d'instance de l'interface IOPCSERVER
    Ajout d'un groupe au serveur OPC
    Ajout d'items OPC
    Lecture valeurs des items
    Suppression des items
    Suppression du groupe
    Lib�ration des r�f�rences interfaces
    Fermeture de la biblioth�que COM
    Mon probl�me se trouve sur la suppression des items lors de la lib�ration de la m�moire.

    J'utilise seulement une ligne de code avec la fonction CotaskMemFree(...).

    Lors de l'arret de la simulation, l'application crash et se ferme directement.

    Lorsque je met cette ligne en commentaire, je n'ai pas de probl�mes lors de l�arr�t de la simulation, sauf que la m�moire va se remplir jusqu�� saturation et plantage de l'application...

  2. #2
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    277
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur multiplateformes
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 277
    Par d�faut
    Bonjour,

    Quelle version de Builder utilisez vous ? Sur quel syst�me ?

  3. #3
    Membre du Club
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2019
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2019
    Messages : 7
    Par d�faut R�ponse
    Bonjour,

    Voici les logiciels que j'utilise:
    � Borland 4.53 pour le noyau de l�application et les fonctionnalit�s de base
    � Borland 5.02 pour la cr�ation de pupitres et synoptiques
    � C++ Builder 4 pour la cr�ation de DLL
    � InnoSetup pour g�n�rer le package.


    Je code sous Windows XP et test sous XP ou Windows 10;


    L'application de simulateur de partie op�rative conversationnel tourne sur Windows 3.1,NT,XP, ect .. puis elle a �t� adapt� sur Windows 7 et 10 mais ce probl�me persiste sur tout les syst�mes.Nous utilisons actuellement notre application sous Windows 10.


    Rappel DLL cr�� sous C++ Builder 4 qui est utilis� dans du code Borland 4.5.
    Probl�me : Lib�ration de la m�moire utilis� par les items.

    Extrait du code de C++ Builder 4 :

    � Lib�ration de la m�moire utilis� par les items issus de Additems �
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    OPCITEMRESULT *pItemResults = (OPCITEMRESULT*) pItemResultTabs ;
    CoTaskMemFree(pItemResultTabs);
    pItemResultTabs  = NULL ;
    De plus nous avons essay� un : CoTaskMemFree(pItemResultTabs[n].pBlop), mais sans r�sultat

    Cordialement,

  4. #4
    Membre exp�riment�
    Homme Profil pro
    D�veloppeur multiplateformes
    Inscrit en
    Mars 2003
    Messages
    277
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur multiplateformes
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 277
    Par d�faut
    My God ! C'est du n�olithique !
    Avec des outils qui ont plus de 20 ans pas �tonnant que vous ayez des soucis.
    Il faudrait d�j� laisser tomber XP pour Windows 10 et t�l�charger la derni�re version de Builder (gratuite) :
    https://www.embarcadero.com/fr/produ...uilder/starter
    L'ancien compilateur Borland est encore fourni mais assez fortement d�conseill� maintenant, utilisez les compilateurs CLang beaucoup plus performants (32 et 64 bits sous Windows).
    Pour le reste j'ai touch� � l'automatisme dans mon jeune temps mais c'est loin...
    Tenez moi quand m�me au courant.

  5. #5
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    Salut,
    ce probleme semble �tre connu chez Microsoft voir article suivant:https://www.google.com/url?sa=t&rct=...HkxeGP0jR5BAjf
    cdlt
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  6. #6
    Membre du Club
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2019
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2019
    Messages : 7
    Par d�faut R�ponse
    Merci pour l�article, il y a un probl�me de fuite de m�moire a se que je comprend.

    En cherchant sur divers forum je tombe sur du code utilisant du CoTaskMemAlloc avec du CotaskMemFree
    et d'autre code n�utilisant que du CotaskMemFree (https://lhcb-online.web.cern.ch/lhcb...pleClient.html)

    J'en ai d�j� parl� a la coll�gue qui s'occup� de ce projet et elle m'avait r�pondu qu'il n'y avait pas besoin de faire dans notre cas de CoTaskMemAlloc ou CoTaskMemRealloc ...

  7. #7
    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,

    Est-ce que tu as bien des CoTaskMemFree � chaque �tape ?
    Par exemple apr�s ->Read(OPCDATASOURCE dwSource, DWORD dwCount, OPCHANDLE *phServer, OPCITEMSTATE **ppItemValues, HRESULT **ppErrors), CoTaskMemFree sur ppItemValues et sur ppErrors, etc etc.

  8. #8
    Membre du Club
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2019
    Messages
    7
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : F�vrier 2019
    Messages : 7
    Par d�faut R�ponse
    Bonjour,
    Oui dans chaque m�thode j'ai un CoTaskMemFree.
    Exemple pour la m�thode Read : pItemsvalues et pErrors ect .. => Oui


    Citation Envoy� par totoche76 Voir le message
    Hello,

    Est-ce que tu as bien des CoTaskMemFree � chaque �tape ?
    Par exemple apr�s ->Read(OPCDATASOURCE dwSource, DWORD dwCount, OPCHANDLE *phServer, OPCITEMSTATE **ppItemValues, HRESULT **ppErrors), CoTaskMemFree sur ppItemValues et sur ppErrors, etc etc.

Discussions similaires

  1. Client OPC sous VB
    Par boumboum dans le forum Automation
    R�ponses: 2
    Dernier message: 20/12/2013, 10h54
  2. [Outils][VB.NET/C#] Comment créer un client OPC ?
    Par Angath dans le forum EDI/Outils
    R�ponses: 4
    Dernier message: 07/10/2005, 16h41
  3. R�ponses: 1
    Dernier message: 10/12/2004, 10h50
  4. Problème avec GLUT sous borland c++ builder X
    Par hiko-seijuro dans le forum GLUT
    R�ponses: 1
    Dernier message: 04/11/2004, 12h47
  5. Afficher du texte en couleur sous Borland C++ 4.02
    Par Cthulhu 22 dans le forum Autres �diteurs
    R�ponses: 7
    Dernier message: 18/11/2003, 00h53

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