Librairie port.dll [Résolu]

Signaler
Messages postés
11
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
5 mars 2007
-
Messages postés
11
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
5 mars 2007
-
    Bonjour à tous,

    J'essaie de créer un logiciel qui génère un signal particulier (entre 1900 et  2500 Hz) sur la sortie de la carte son. Après recherches, j'ai décider d'utiliser port.dll pour créer mon logiciel. J'ai télécharger la dernière version compatible XP

    Malheureusement, les rares exemples que j'aie trouvés sont fait sous visual basic 6, or je suis en .net. Aussi, aurais-je besoin d'aide, si une âme charitable acceptaient de m'aider...

12 réponses

Messages postés
11
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
5 mars 2007

   Bon, alors le private à pas l'air de marcher , du moins chez moi. Cependant, j'air regarder un peu inpout32.dll, et ça me convient parfaitement, c'est parfait pour gérer des trame numérique via la carte son. Donc, en ce qui me concerne, ce sujet est classé.

   Encore merci pour tout, à tous ceux qui m'ont aidé

Deusyss
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Indique ici ton problème, éventuellement avec le bout de code qui merde et on essayera de t'aider.

Sans trop vouloir m'avancer, je dirais qu'à priori ton soucis va se porter sur la déclaration des fonctions de la dll

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
11
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
5 mars 2007

Bonjour Casy, et merci pour ta réponse. Voici mon code source. Je tient également à préciser que je n'utilise pas vb.net de microsoft, mais sharpdevelop.

Public Partial Class MainForm
    
    Declare Sub OUTPORT Lib "PORT.dll" (ByVal adr As Integer, ByVal dat As Integer)
    Declare Function INPORT Lib "PORT.dll" (ByVal adr As Integer) As Integer
    Declare Sub DELAY Lib "PORT.dll" (ByVal temp As Integer)
    
    dim n as Integer    
    
    Public Sub New()
        ' The Me.InitializeComponent call is required for Windows Forms designer support.
        Me.InitializeComponent()
                
    End Sub
    
    Sub Button1Click(ByVal sender As Object, ByVal e As EventArgs)
        For n=1 To 100
            outport (97,(inport(97) or 2))
            delay(2)
            outport (97,(inport(97) and 253))
            delay(2)    
        Next
    End Sub
End Class

A priori le code est bon. Maintenant, il vient d'un site en allemand, et je ne parle pas l'allemand, donc pas trop de moyen de vérifier.

   Merci d'avance à tous ceux qui m'aide, et m'aideront (surtout Casy)
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
23
Quelque chose en français, pour y voir plus clair (sous VB6 et donc à transposer)
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
23
Zut (lien oublié)
Le voici

http://www.hjberndt.de/book/pcsfr3.html
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Alors je dirais tout d'abord qu'il faut revoir le type des variables des fonctions de la dll

Les types de variables ont changés en .Net
Donc tout ce qui est en Integer dans la dll doit etre déclaré en Short (ou Int16 si tu préfere) sous .Net

    Declare Sub OUTPORT Lib "PORT.dll" (ByVal adr As Short, ByVal dat As Short)
    Declare Function INPORT Lib "PORT.dll" (ByVal adr As Short) As Short
    Declare Sub DELAY Lib "PORT.dll" (ByVal temp As Short)

Et au passage, voila l'adresse de la version française ;) : http://www.b-kainka.de/schnfr.htm

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
11
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
5 mars 2007

   Merci beaucoup pour votre aide, malheureusement, ça ne marche toujours pas. Par contre, pour indication, il m'affiche ceci:

Exception System.Runtime.InteropServices.SEHException was thrown in debuggee:
External component has thrown an exception.

   Si quelqu'un sait comment y remedier
Messages postés
11
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
5 mars 2007

    Désolé pour le double post.

   Donc, je viens de réinstaller mon vieux vb6, pour essayer le code des pages que vous m'avez joint.

    Il s'avère que le programme ne compile pas plus. il m'affiche un message d'erreurs sur les declaratioons des fonctions de la dll, comme quoi "declare statements not allowed as public members of object modules".

    Pour informations, sinon, j'aimerias développé cet applications sous vb.net, mais dans un 1er temps je pourrai me contenter d'une version vb6
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
bon j'ai mis un peu de temps pour percuter, mais cette dll ne fonctionne pas sur les plateforme NT (Windows 2000, XP, ...)

Elle accède directement au matériel et ça windows ne le permet plus. Elle a été développée à l'origine pour windows 95 et 98 qui étaient très permissif de ce coté là.

Donc tu peux laisser tomber tu ne fera pas marcher cette dll.

Il faut que tu te tourne vers une autre dll qui elle integre un pseudo driver pour acceder au matériel.

Fait une recherche sur le net, (ou même peut-etre ici) sur InpOut32.dll

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
23
Pas de précxipitation, là...


Où as-tu mis tes fonctions ?


Si dans un modile, ok...


Mais si sur la Form : il est nécessaire de les déclarer en "Private"




 Private Declare Sub OUTPORT Lib "PORT.dll" (B..... etc....


 
Messages postés
11
Date d'inscription
vendredi 9 février 2007
Statut
Membre
Dernière intervention
5 mars 2007

   Merci, je vais regarder la dll que tu m'as donné. Mais pour info, l'auteur de port.dll à créer une nouvelle version compatible XP (créée en 2007).

    Mais je vais regarder du coté de inpout32.dll.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
ah ben faut regarder cette nouvelle version alors. En tout cas c'est celle que j'ai trouver moi.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #