logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zaimportować i wywołać funkcje z inpout32.dll w Delphi 7?

użyszkodnik 09 Sie 2005 23:01 6060 4
REKLAMA
  • #1 1721129
    użyszkodnik
    Poziom 2  
    Posty: 4
    Witam
    Chcę oprogramować w Delphi 7 port LPT korzystzjąc z biblioteki inpout32.dll. Problem sprawia mi zaimportowanie biblioteki i wywolanie zawartych w niej funkcji.
    Dostępne sa wszędzie opisy jak to zrobic w Visual Basicu oraz C++ Builder.
    VB:
    Public Declare Function Inp Lib "inpout32.dll" _
    Alias "Inp32" (ByVal PortAddress As Integer) As Integer
    Public Declare Sub Out Lib "inpout32.dll" _
    Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)



    Jak najprościej wywołac te funkcje w Delphi?

    Doszukałem się w książce "Delphi 4 dla Każdego", sposobu podobnego do kodu podanego w VB, czyli:
    
    var
      Form1: TForm1;
        procedure Inp32(PortAddress : Integer); external 'inpout32.dll';
        procedure Out32(PortAddress : Integer; Value : Integer); external 'inpout32.dll';
    
    implementation


    Projekt mi się kompiluje, ale wywoływac funkcji nie próbowałem.
    Czy jest to generanie dobry sposób korzystania z dll? No i czy ja postępuje poprawnie.

    Z góry dziękuje za pomoc.
  • REKLAMA
  • #2 1721177
    Piroman1024
    Poziom 17  
    Posty: 171
    Pomógł: 18
    Ocena: 17
    A koniecznie musisz kożystać z tej biblioteki?
    -Jeżeli tak to spróbuj dodać linię:
    Uses input32;

    -Jeżeli nie istnieje wiele alternatyw np.zlportio(pracuje również pod NT co jest jej wielką zaletą)
    Załączniki:
    • Zlportio.rar (13.69 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #3 1722001
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    użyszkodnik:
    procedure Inp32(PortAddress : Integer); external 'inpout32.dll';

    niebędzie działać gdyż niezwraca wyniku. poprawna definicja będzie:
    function Inp32(PortAddress : Integer): Integer; external 'inpout32.dll';


    niewiem w jaki sposób inout32.dll przekazuje parametry, ale zapewne konieczne będzie dodanie deklaracji 'stdcall' więc ostatecznie warto spróbować z:

    function Inp32(PortAddress : Integer): Integer;
     stdcall; external 'inpout32.dll';
    procedure Out32(PortAddress : Integer; Value : Integer);
     stdcall; external 'inpout32.dll';


    ostatecznie warto załączyć google:
    http://www.google.com/search?num=25&hl=pl&q=inpout32.dll+delphi&btnG=Szukaj&lr=
    http://www.pci-card.com/pciadpas.html
    tam jest:
    procedure Out32(PortAddress:word;Value:byte);
     stdcall;export;external 'inpout32.DLL'; 
    function Inp32(PortAddress:word):byte;
     stdcall;export;external 'inpout32.DLL';

    ("export" jest zbędne)
  • REKLAMA
  • Pomocny post
    #4 1722099
    Konto nie istnieje
    Konto nie istnieje  
  • #5 1734862
    użyszkodnik
    Poziom 2  
    Posty: 4
    Wielkie dzięi Panowie, juz (dopiero) sobie poradziłem.
REKLAMA