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 :

Souci avec DlPortIO sous BDS 2006


Sujet :

C++Builder

  1. #21
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    J'ai supprimer l'objet de l'inspecteur d'objet
    et je le déclare moi-même dans le code

    dans le .h de ma form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // include
    #include "DLPortIO.h" 
     
    // Port parallèle
    TDLPortIO *PortIO;
    Dans le .ccp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // Dans le constructeur de la form
    // On crée le composant pour le port parallèle
    PortIo = new TDLPortIO(Form1);
    Et j'ai toujours la même erreur

  2. #22
    Membre chevronné
    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
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut

    as tu supprimé les fichiers obj,bpi,bpl relatifs a ce composant ?
    dans le chemin de recherche des librairies n'as tu pas une référence a une ancienne version de ton composant d'avant ta migration sous BDS2006

  3. #23
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Je pense oui, je viens de tous supprimer et de tous recréeer et toujours pareil

    Je commence à désespéré car l'utilisation du Port parallèle est importante dans mon soft et je peux pas m'en passer.

  4. #24
    Membre chevronné
    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
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Salut,
    essaye en compilant ce bout de code réalisée avec Turbo C++
    normalement tu ne devrais pas avoir d'erreur lors de l'édition de liens
    le projet s'appelle TestPar
    cordialement
    Fichiers attachés Fichiers attachés

  5. #25
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Ton projet compile sans souci.

    J'ai vu que tu avais ajouté les fichiers de DlPortIo dans ton projet
    J'ai fait de même dans le mien et cela à l'air de fonctionner.
    Je ne comprend pas d'ou cette erreur peut venir autrement
    et en plus, les composants ne sont même pas ajoutés dans la palette de composant lorsque je les installent.
    Je fais encore quelques test pour vérifier.

  6. #26
    Membre chevronné
    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
    Points : 2 187
    Points
    2 187
    Billets dans le blog
    1
    Par défaut
    Un remerciement aurai été apprécié
    cordialement

  7. #27
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Excuse moi, j'ai cru que je l'avais mis, j'ai oublié, dsl

    Un grand merci a toi

  8. #28
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    C'est à nouveau moi.

    Mon problème est revenu et cette fois-ci plus moyen de le refaire fonctionner.

    Est-ce que quelqu'un connaitrait un autre composant que DlPortIO qui fonciton ne sous Borland Developper Studio 2006 car là ce ma coince énormément.

    J'ai absolument besoin de communiquer avec le port parallèle car mon logiciel doit être déclancher par un autre qui envois un front montant sur le Port Parallèle

    Merci d'avance pour votre aide

  9. #29
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut kurul1
    Je n'ai jamais utilise le composant mais juste une idee comme cela tu ne serais pas sous Windows Vista qui pose des problemes avec les droits " utilisateur " et " administrateur "

  10. #30
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Non je suis sous XP

  11. #31
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    C'est un projet deja ecrit pour BCB6 que tu recompile en BCB2006, si oui est ce que tu n'aurrais pas interet a recreer un nouveau projet par copier coller bien sur, c'est ton message d'erreur qui me fait penser a cela

  12. #32
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    C'est ce que j'ai pensé au début car j'ai porté mes projets existants de BCB 6 sur BDS 2006 mais là, c'est une nouvelle appli développé de A à Z sur BDS2006.

    On dirais que lorsque j'installe le composant, le lib générée face référence à l'ancien chemin sous BCB 6. Et là, comment faire pour changer ca, j'en ai aucune idée.

  13. #33
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Après quelques recherches, j'ai trouver la dll inpout32.dll qui permettrait de manipuler le port parallèle.

    Par contre je n'arrive pas à l'utiliser. Quelqu'un saurait-il comment faire

    Merci d'avance

  14. #34
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    J'ai donc encore fouiné et j'ai réussi a faire fonctionner du moins en partie la DLL. Par contre j'ai toujours un souci

    J'ai un logiciel (propriétaire qui n'est pas de moi et qui envois un front montant sur D0 lorsque je le lance).

    Moi je voudrais synchroniser ce lancement avec un logiciel que je conçois qui doit démarrer un affichage lorsqu'il reçoit ce front montant sur D0

    Pour tester les ports, j'ai donc fait un petit programme qui n'affiche l'état des broches D0 à D7 ansi que la données transmises.

    Lorsque je lance les deux appli sur le même PC, le changement d'état dans mon appli se fait bien lorsque l'autre logiciel démarre.

    Par contre dès que je le met sur un autre pC avec le cable parallèle relié entre les deux, rien ne se passe.

    J'ai tester le cable pour voir si le courant passe bien et c'est le cas.

    Aurais-je oublié de changer la valeur d'un registre ?

    Voici mon code

    Classe pour le port parallèle

    PortParallele.h

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    #include <vcl.h>
    #include <conio.h>
     
    /* prototype (function typedef) for DLL function Inp32 et out32: */
    typedef short _stdcall (*PtrIn)(short portaddr);
    typedef void _stdcall (*PtrOut)(short EndPorta, short valor);
     
    // Union pour la récupération des broches du port parallèle
    union TSChar
    {
    	char chr;
    	struct
    	{
    		unsigned char Bit0 : 1;
    		unsigned char Bit1 : 1;
    		unsigned char Bit2 : 1;
    		unsigned char Bit3 : 1;
    		unsigned char Bit4 : 1;
    		unsigned char Bit5 : 1;
    		unsigned char Bit6 : 1;
    		unsigned char Bit7 : 1;
    	};
    };
     
    // Classe pour le port parallèle
    class TPortParallele
    {
    	private :
     
    		// Adresse du port
    		unsigned short AdressePort;
     
    		// Instance de la librairie
    		HINSTANCE hLib;
     
    		// Fonction de lecture
    		PtrIn Lecture;
     
     
    		// Fonction d'écriture
    		PtrOut Ecriture;
     
    	public :
     
    		// Constructeur
    		__fastcall TPortParallele();
     
    		// Destructeur
    		__fastcall ~TPortParallele();
     
    		// Méthode chargée de l'initialisation
    		bool __fastcall Initialisation(unsigned short Adresse);
     
    		// Méthode chargée de mettre le Port à 0
    		void __fastcall MiseAZero(void);
     
    		// Lecture des données
    		TSChar __fastcall TPortParallele::LireDonnees(void);
    };
    PortParallele.cpp
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    #include "PortParallele.h"
     
    //---------------------------------------------------------------------------
     
    // Constructeur
    __fastcall TPortParallele::TPortParallele()
    {
    }
     
    //---------------------------------------------------------------------------
     
    // Destructeur
    __fastcall TPortParallele::~TPortParallele()
    {
    	// On libère la librairie
    	FreeLibrary(hLib);
    }
     
    //---------------------------------------------------------------------------
     
    // Méthode chargée de l'initialisation
    bool __fastcall TPortParallele::Initialisation(unsigned short Adresse)
    {
    	// Booléen pour la valeur de retour
    	bool Retour;
     
    	// On affecte l'adresse du port
    	AdressePort = Adresse;
     
    	// On charge la librairie
    	hLib = LoadLibrary("inpout32.dll");
     
    	// Si le chargement s'est mal passé
    	if(hLib == NULL)
    	{
    		ShowMessage("Erreur de chargement de la librairie !");
     
    		return false;
    	}
     
    	// On récupère la fonction de lecture
    	Lecture = (PtrIn) GetProcAddress(hLib, "Inp32");
     
    	// Si le chargement s'est mal passé
    	if(Lecture == NULL)
    	{
    		ShowMessage("Erreur de chargement de la fonction inp32 !");
     
    		return false;
    	}
     
     
    	// On récupère la fonction d'écriture
    	Ecriture = (PtrOut) GetProcAddress(hLib, "Out32");
     
    	// Si le chargement s'est mal passé
    	if(Ecriture == NULL)
    	{
    		ShowMessage("Erreur de chargement de la fonction out32 !");
     
    		return false;
    	}
     
    	// SI l'on est ici, c'est que les chargements se sont bien passé
    	// On met le port à 0
    	MiseAZero();
     
    	// On retourne true pour marquer que l'initialisation s'est bien passé
    	return true;
    }
     
    //---------------------------------------------------------------------------
     
    // Méthode chargée de mettre le Port à 0
    void __fastcall TPortParallele::MiseAZero(void)
    {
    	(Ecriture)(AdressePort, 0x0);
    }
     
    //---------------------------------------------------------------------------
     
    // Lecture des données
    TSChar __fastcall TPortParallele::LireDonnees(void)
    {
    	// Union pour récupérer les données
    	TSChar Donnees;
     
    	// On récupère les données
    	Donnees.chr = (Lecture)(AdressePort²);
     
    	// On les retournes
    	return Donnees;
    }
     
    //---------------------------------------------------------------------------
    Et donc voilà comment je procède pour l'utilisation

    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
     
    #include "PortParallele.h"
    .....
     
    // OBjet pour piloter le port Parallele
    TPortParallele *Port;
     
    // Objet pour récupérer les données
    TSChar Donnees;
     
    // Si l'initialisation s'est bien passé
    if(PortParallele->Initialisation(0x378))
    {
       // On lit les données sur le port parallèle 
       Donnees = Port->LireDonnees();
    }
     
    // Lorsque l'on a terminé, on libère le port
    delete PortParallele;
    PortParallele = NULL;
    J'accède ensuite a la valeur de D0 par Donnees.Bit0
    je fait cela dans une boucle de lecture pour lire en permanance.

    Quelqu'un saurais d'où pourrais venir le problème

    Merci d'avance pour votre aide

Discussions similaires

  1. [Rave] Problème avec DataMemo sous Delphi 2006
    Par bhtechnologies dans le forum Composants VCL
    Réponses: 12
    Dernier message: 30/07/2009, 15h53
  2. Problème avec Indy sous BSD 2006
    Par merouane_k dans le forum Web & réseau
    Réponses: 1
    Dernier message: 22/03/2008, 21h35
  3. Petit souci avec Borland Developer Studio 2006
    Par User Name dans le forum EDI
    Réponses: 5
    Dernier message: 29/12/2007, 17h57
  4. Problème avec xorg sous mandriva 2006
    Par sali lala dans le forum Mandriva / Mageia
    Réponses: 6
    Dernier message: 02/05/2007, 23h45
  5. Choisir le FrameWork à utiliser sous BDS 2006
    Par msuzenne dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 10/11/2006, 10h32

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