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++ Discussion :

Interfacer un appareil USB avec c++


Sujet :

C++

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut Interfacer un appareil USB avec c++
    Bonjour,

    Je dois interfacer un appareil relié à un PC par USB.

    Pour commencer je souhaite pouvoir lancer et connecter cet appareil à l'aide d'une DLL fourni par le fournisseur de l'appareil.

    Le fournisseur à mis a disposition un petit programme de test qui permet de faire ce que j'ai décrit au dessus. Toutefois, ce programme ne fonctionne pas.

    Ayant des connaissances très basics en c++ je ne sais pas d'où vient l'erreur.

    Voici le code

    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
    / TestPGAppCommFromC.cpp : Defines the entry point for the console application.
    //
     
    #include "stdafx.h"
    #import "PGAppComm.tlb" named_guids raw_interfaces_only
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {
        long retVal;
    	bool launched = false;
    	bool connected = false;
    	BSTR hostName;
    	long portNum;
     
    	// initialize COM
    	CoInitialize(NULL);
     
    	// initialize instance of PGAppCom
    	PGAppComm::IPGAppCommInterfacePtr pServer(__uuidof(PGAppComm::PGAppComm));
     
    	// launch PGAppDotNet
    	/* serverFn is the repository where we have to find PGApp.exe 
    	if serverFn is "", PGAppComm will look for installed PGAppDotNet application and use it */
    	BSTR serverFn = SysAllocString(L"");
     
    	// GetServerHostInfo functionget the server host name and port number
    	pServer->GetServerHostInfo(&hostName, &portNum, &retVal);
    	VARIANT_BOOL hideGUI = FALSE;
     
    	//LaunchServer function launch a new PGAppDotNet server application on  the local machine
    	pServer->LaunchServer(serverFn, portNum, 1328, hideGUI, &retVal);
    	launched = (retVal == PGAppComm::DotNetErr_OK); 
    	if (!launched)
           printf("Error %d launching PGAppDotNet server", retVal); 
    	SysFreeString(serverFn);
     
    	// connect to PGAppDotNet
    	if (launched) {
    		BSTR hostName = SysAllocString(L"localhost:12345");
    		// Connect function connect a client to a server
            pServer->Connect(hostName, &retVal);
       	    connected = (retVal == PGAppComm::DotNetErr_OK);
    		if (!connected)
    			printf("Error %d launching connecting to PGAppDotNet server", retVal); 
    		SysFreeString(hostName);
    	}
     
    	// close PGAppDotNet and disonnect
    	if (connected) 
    		pServer->ShutDownServer(&retVal);
     
    	// release COM object
    	pServer->Release();
     
    	// deinitialize COM
    	CoUninitialize();
     
    	return 0; 
    }
    lorsque je lance ce code cette erreur apparait

    Exception non gérée à 0x7c812fd3 dans TestPGAppCommFromCPP.exe*: Exception Microsoft C++*: _com_error à l'emplacement mémoire 0x0012fce8..

    sortie VBC++

    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
    'TestPGAppCommFromCPP.exe'*: Chargé '\\Cimi\j.baer\TestPGAppCommFromCPP\Debug\TestPGAppCommFromCPP.exe', Les symboles ont été chargés.
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\ntdll.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\kernel32.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\ole32.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\advapi32.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\rpcrt4.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\secur32.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\gdi32.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\user32.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\msvcrt.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\oleaut32.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\msvcr100d.dll', Les symboles ont été chargés.
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\imm32.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\uxtheme.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\Program Files\Dexpot\hooxpot.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\MSCTF.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\Program Files\UltraVNC\SCHook.dll', Le fichier binaire n'a pas été généré avec les informations de débogage.
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\clbcatq.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\comres.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\version.dll', Cannot find or open the PDB file
    'TestPGAppCommFromCPP.exe'*: Chargé 'C:\WINDOWS\system32\xpsp2res.dll', Le fichier binaire n'a pas été généré avec les informations de débogage.
    Exception de première chance à 0x7c812fd3 dans TestPGAppCommFromCPP.exe*: Exception Microsoft C++*: _com_error à l'emplacement mémoire 0x0012fce8..
    Exception non gérée à 0x7c812fd3 dans TestPGAppCommFromCPP.exe*: Exception Microsoft C++*: _com_error à l'emplacement mémoire 0x0012fce8..
    Autant vous dire que tout cela est du chinois pour moi. Dans l'attente de vos réponse, je vous remercie.

  2. #2
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Bonjour.

    Première chose à faire, débugger pas-à-pas pour voir à quelle ligne de code ça catch ("Exception de première chance à 0x7c812fd3 dans TestPGAppCommFromCPP.exe*: Exception Microsoft C++*: _com_error à l'emplacement mémoire 0x0012fce8..).

    Ensuite "BSTR hostName;" ne semble pas être initialisé :

    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    Ceci, expliquant peut-être cela.

    Ensuite cette partie du code ressemble à du C++/CLI :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // initialize instance of PGAppCom
    	PGAppComm::IPGAppCommInterfacePtr pServer(__uuidof(PGAppComm::PGAppComm));
    Cela ne ressemble pas du tout à une instanciation classique d'interface COM pure en C++. On dirait qu'il y mélange des genres (C++ natif/C++/CLI).

    Aussi la validité de l'objet "BSTR hostName;" ne sembe pas présente dans ce code.

    PS: cette dll semble utiliser la technologie COM de Microsot. C'est une Techno très difficile à aborder en quelques jours. En fait il faut plusieurs années...

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Merci pour ta réponse.

    C'est vrai que je peine à trouver des explications sur certaines parties du code, dans les cours C++ que je glane sur le net.

    Le probleme semble venir de la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PGAppComm::IPGAppCommInterfacePtr* pServer(__uuidof(PGAppComm::PGAppComm));
    Je n'ai plus qu'à me mordre les doigts ou faire des nuits blanches pour comprendre

  4. #4
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Re.

    Ton programme mélange C++ natif et C++/CLI, cela ajoute à la confusion.

    Tu es en mixe/mode et honnêtemment, je ne le conseille pas lorsque l'on ne sait pas ce que l'on fait. En fait je ne conseille pas de mélanger deux langages dans le même source, même s'ils sont proches.

    Je te conseille de passer en C++ natif et de remplacer la ligne qui pose problème par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HRESULT hr = CoCreateInstance(CLSID_???, NULL, CLSCTX_INPROC_SERVER, IID_????, reinterpret_cast<void**>(&?????));
    Pour connaître le CLSID, le IID et le pointeur à recevoir, faire un tour dans le fichier PGAppComm.tlb.

    S'assurer aussi que la dll est bien enregistrée sur le système (regsvr32).

    PS: je suis étonné que ce code compile car je ne vois pas les #pragma managed et #pragma unmanaged.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Merci pour cette piste à exploiter

    Je te conseille de passer en C++ natif et de remplacer la ligne qui pose problème par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HRESULT hr = CoCreateInstance(CLSID_???, NULL, CLSCTX_INPROC_SERVER, IID_????, reinterpret_cast<void**>(&?????));
    Pour connaître le CLSID, le IID et le pointeur à recevoir, faire un tour dans le fichier PGAppComm.tlb.
    J'ai trouvé le CLSID et le IID dans le fichier indiqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // Named GUID constants initializations
    //
     
    extern "C" const GUID __declspec(selectany) LIBID_PGAppComm =
        {0x3bcd8278,0x8adf,0x43d6,{0xa4,0xc5,0x9e,0x8d,0x97,0x5f,0xe7,0xbc}};
    extern "C" const GUID __declspec(selectany) CLSID_PGAppComm =
        {0x3825485d,0xf3aa,0x41ae,{0x89,0x37,0x1a,0xcc,0x06,0xec,0x47,0x81}};
    extern "C" const GUID __declspec(selectany) IID_IPGAppCommInterface =
        {0xeb194547,0xe070,0x4ea9,{0xb4,0xee,0xa5,0x46,0x78,0x34,0x92,0x4a}};
    Par contre pour le pointeur à recevoir je ne trouve rien dans PGAppComm.tlb.

    D'après msdn la fonction CoCreateInstance renvoie un type "LPVOID". J'ai essayé de créer une variable de ce type

    pour mettre pServer en argument.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HRESULT hr = CoCreateInstance(PGAppComm::CLSID_PGAppComm, NULL, CLSCTX_INPROC_SERVER, 
    		PGAppComm::IID_IPGAppCommInterface, reinterpret_cast<void**>(&pServer));
    La compilation ne pose pas de problème bien que je pense me tromper sur le dernier argument de la fonction.

    Pour enregistrer la dll, PGAppComm.dll, une application fournie doit s'en charger. Mais lorsque je tape regsvr32 PGAppComm.dll, il m'indique l'erreur suivante

    "PGAppComm.dll a été chargé mais le point d'entrée DllRegisterServer est introuvable.
    Ce fichier ne peut pas être enregistré"


    Selon l'aide microsoft ce genre d'erreur est retourné si le fichier n'a pas une extension .dll ou .ocx. Or mon fichier a bien une extension .dll.

  6. #6
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Bonjour.

    Je me rends compte que j'ai raconté quelques bêtises. Ce programme est bien du C++ natif.

    PGAppComm.dll ne peut pas s'enregistrer avec regsvr32, parce que c'est une dll COM écrite en langage managé. Elle s'enregistre avec regasm. Ceci explique la présence du #import PGAppComm.tlb dans le source.

    Donc il faut vérifier que PGAppComm.dll se trouve bien dans le GAC, et non dans le registre, comme pour une dll COM en C++ natif :

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.90).aspx

    Ce qui peut poser problème avec la dll et le tlb, c'est que leurs versions doivent correspondre exactement. Le tlb doit correspondre exactement à la version compilée de la dll et qui est enregistrée sur le système. Dans la situation où c'est bien cette ligne qui pose problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PGAppComm::IPGAppCommInterfacePtr* pServer(__uuidof(PGAppComm::PGAppComm));

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Bonjour,

    En exécutant une variante que vous m'avez inspiré, je me rends compte que le problème vient peut être d'ailleurs.

    En effet, en mode débug le message suivant s'affiche :

    "Exception de première chance à 0x7c812fd3 (kernel32.dll) dans TestPGAppCommFromCPP.exe*: Exception Microsoft C++*: _com_error à l'emplacement mémoire 0x0012fce0..
    Le thread 'Thread Win32' (0xe5c) s'est arrêté avec le code 0 (0x0).
    Le thread 'Thread Win32' (0x3a4) s'est arrêté avec le code 0 (0x0).
    Le thread 'Thread Win32' (0x7d8) s'est arrêté avec le code 0 (0x0).
    Le programme '[3884] TestPGAppCommFromCPP.exe: Natif' s'est arrêté avec le code 0 (0x0).
    "


    Le SI est windows XP

  8. #8
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Re.

    J'essaie de détailler le code :

    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
     
     
      long retVal;
      bool launched = false;
      bool connected = false;
      BSTR hostName;
      long portNum;
     
      // Vérifer que hr = S_OK
      HRESULT hr = CoInitialize(NULL);
     
      // Ici un try/catch
      // Il y a moyen de récupérer les erreurs COM de PGAppComm.dll,
      // c'est-à-dire les HRESULT des lignes ci-dessous, hormis les SysAllocString.
      // mais il faut se documenter sur la MSDN.
      try{
     
        // Etre certain que cette ligne ne fait pas d'exception
        // Cela voudrait dire que la dll n'est pas enregistrée dans le GAC.
        // Ou alors que le tlb ne correspond pas à la dll (en numéro de version/date de création par exemple).
        PGAppComm::IPGAppCommInterfacePtr pServer(__uuidof(PGAppComm::PGAppComm));
     
        BSTR serverFn = SysAllocString(L"");
     
        // Ici hostName n'est pas initialisé.
        // Est-ce que la documentation le précise ?
        // Sinon faire hostName = SysAllocString(L"");
        // Je pense que GetServerHostInfo attends un BSTR initialisé.
        pServer->GetServerHostInfo(&hostName, &portNum, &retVal);
        // retVal contient un numéro, qui indique certainement le type d'erreur ou non.
        // La doc de la dll doit le préciser.
     
        // Je ne commente pas la suite.
        // Il faut savoir si le programme arrive jusque là.
        ...
      }
      catch(...){}
    Il faut faire un débugage pas-à-pas, et connaître exactement la ligne où ça plante.

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Re

    Voici le code que j'utilise actuellement :

    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
     
    // TestPGAppCommFromC.cpp : Defines the entry point for the console application.
    //
    #include "stdafx.h"
    #include <iostream>
     
    #import "PGAppComm.tlb" named_guids raw_interfaces_only
    //using namespace PGAppComm;
     
    int _tmain(int argc, _TCHAR* argv[])
    {
        long retVal;
    	bool launched = false;
    	bool connected = false;
    	BSTR serverFn = SysAllocString(L"");
    	// initialize COM
    	HRESULT hr = CoInitialize(NULL);
     
    	PGAppComm::IPGAppCommInterfacePtr m_pServer = NULL;
    	bool DllInitialisee = false;
     
    	try{
     
    		PGAppComm::IPGAppCommInterfacePtr pServer(__uuidof(PGAppComm::PGAppComm));
    		m_pServer = pServer;
     		pServer = NULL;
     
    		// le code de retour de la méthode de l'ActiveX
    		m_pServer->LaunchServer(serverFn, 1025, 1328, false, &retVal);
     
    		if(retVal == PGAppComm::DotNetErr_OK){
    			DllInitialisee = true;};
    			}
     
    	catch(...){
     
    		if(m_pServer){
    			m_pServer = NULL;	
    		};}
     
    	// release COM object
    	m_pServer->Release();
     
    	// deinitialize COM
    	CoUninitialize();
     
    	return 0;
     
    }
    En executant le debug pas à pas je constate que c'est toujours cette ligne qui pose problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PGAppComm::IPGAppCommInterfacePtr pServer(__uuidof(PGAppComm::PGAppComm));
    De plus, le mode dégub m'indique que les fichiers suivants sont introuvable.

    comsupp.cpp
    throw.cpp
    comraise.cpp


    en revanche j'ai comsupp.lib

    L'absence de ces fichiers explique peut être le non fonctionnement du programme !? et m'affiche l'erreur "Exception non gérée (kernel32.dll) ..."

  10. #10
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Citation Envoyé par pokie Voir le message

    De plus, le mode dégub m'indique que les fichiers suivants sont introuvable.

    comsupp.cpp
    throw.cpp
    comraise.cpp
    Ce n'est pas forcément important si le programme compile. Utilisez-vous les MFC ?

    Citation Envoyé par pokie Voir le message

    En executant le debug pas à pas je constate que c'est toujours cette ligne qui pose problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PGAppComm::IPGAppCommInterfacePtr pServer(__uuidof(PGAppComm::PGAppComm));
    Il faut relire mon message précédent. Si cette ligne échoue, c'est au moins pour les deux raisons que j'ai évoquée.

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 23
    Par défaut
    Bonjour Moldavi,

    Je vous annonce que ça fonctionne enfin ... Le problème était que RegAsm ne faisait pas bien son rôle et n'enregistrait pas la DLL.

    Je ne m'en était pas aperçu puisque je l'avais lancé en double cliquant, l'éxecution rapide ne me laissait pas le temps de voir le message affiché dans win32.

    En lançant regAsm depuis l'invite de commande windows, j'ai pu voir l'avertissement que PGAppComm.dll n'était pas enregistré. Puis par je ne sais quelle magie, la DLL a été enregistrée, juste en déplaçant les deux fichiers dans un autre dossier ...

    Je vous remercie de m'avoir accordé de votre temps, vos messages bien utiles m'ont permis de mieux comprendre ce que je suis amené à faire.

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

Discussions similaires

  1. Partager scanner avec appareil usb ?
    Par Nemesys dans le forum Périphériques
    Réponses: 3
    Dernier message: 31/05/2006, 11h48
  2. Gestion d'un disque usb avec kickstart ?
    Par jula dans le forum Administration système
    Réponses: 1
    Dernier message: 07/03/2006, 13h17
  3. probleme USB avec SAGEM FAST 800
    Par k_boy dans le forum Périphériques
    Réponses: 9
    Dernier message: 13/12/2005, 17h12
  4. [Système] Trouver une clef USB avec PHP
    Par chico_du_33 dans le forum Langage
    Réponses: 8
    Dernier message: 05/10/2005, 17h29

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