Librairie port.dll

Résolu
deusyss Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 5 mars 2007 - 9 févr. 2007 à 16:46
deusyss Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 5 mars 2007 - 9 févr. 2007 à 19:10
    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

deusyss Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 5 mars 2007
9 févr. 2007 à 19:10
   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
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 févr. 2007 à 17:03
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 #
0
deusyss Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 5 mars 2007
9 févr. 2007 à 17:09
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)
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 févr. 2007 à 17:15
Quelque chose en français, pour y voir plus clair (sous VB6 et donc à transposer)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 févr. 2007 à 17:16
Zut (lien oublié)
Le voici

http://www.hjberndt.de/book/pcsfr3.html
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 févr. 2007 à 17:20
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 #
0
deusyss Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 5 mars 2007
9 févr. 2007 à 17:25
   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
0
deusyss Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 5 mars 2007
9 févr. 2007 à 17:51
    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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 févr. 2007 à 18:01
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 #
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
9 févr. 2007 à 18:15
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....


 
0
deusyss Messages postés 11 Date d'inscription vendredi 9 février 2007 Statut Membre Dernière intervention 5 mars 2007
9 févr. 2007 à 18:26
   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.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 févr. 2007 à 18:29
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 #
0
Rejoignez-nous