Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DLL Funktionen einbinden (https://www.delphipraxis.net/65135-dll-funktionen-einbinden.html)

ernesti001 12. Mär 2006 20:47


DLL Funktionen einbinden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

hat jemand einen Plan, wie man folgende DLL in delphi aufrufen kann, habe nur das
C-Header File, hoffe es kann jemand was damit anfangen, habe schon das ganze Wochenende damit
verplempert - ohne Erfolg
(kann immerhin mit "function GetUsbDeviceListName(lpszNameArray: PPChar): Integer; StdCall; external 'USBLibrary.dll' name '?GetUsbDeviceListName@@YAHQAPAPAD@Z'; " schon mal die Geräte-ID abfragen)
Es handelt sich hier um einen USB-Treiber, ich müsste nur wissen, wie ich den USBPipe öffnen kann. In C sieht das<ganz einfach aus.


Hier das Header:
Code:
#include <windows.h>
#include <setupapi.h>
#include <basetyps.h>


class USBLIBRARY_API CFCPipeUSB {

    HANDLE m_hPipeIn;   // Handel of the input file
    HANDLE m_hPipeOut;   // Handel of the output file

  public :
    CFCPipeUSB();      // Constructor

    short Open(char *sDeviceName);   // Open pipe
    short Close();               // Close pipe

    virtual short ReadPipe(LPVOID pBuffer, ULONG ulBufferSize);      // Read data
    virtual short WritePipe(LPVOID pBuffer, ULONG ulBufferSize, ULONG *pBytesWritten);   // Write data
};

// Get list of connected device
USBLIBRARY_API int GetUsbDeviceListName(char** deviceList[]);

Ernstl

PS: Habe mal die C-Datei angehängt

[edit=sakura] [c]-Tags Mfg, sakura[/edit]

franz 14. Mär 2006 00:46

Re: DLL Funktionen einbinden
 
Zitat:

Zitat von ernesti001
(kann immerhin mit "function GetUsbDeviceListName(lpszNameArray: PPChar): Integer; StdCall; external 'USBLibrary.dll' name '?GetUsbDeviceListName@@YAHQAPAPAD@Z'; " schon mal die Geräte-ID abfragen)

Hi,

ich weiß nicht, ob dir das weiterhelfen wird. Aber in Delphi werden DLLs, die mit C oder C++ geschrieben sind normalerweise mit der Aurufkonvention cdecl augerufen und nicht mit stdcall.

Luckie 14. Mär 2006 07:09

Re: DLL Funktionen einbinden
 
Das wäre mir aber neu. Alle Windows API Funktionen werden mit stdcall aufgerufen.

ste_ett 14. Mär 2006 07:13

Re: DLL Funktionen einbinden
 
Delphi Hilfe -> Aufrufkonventionen

Dort ist nochmal erklärt, was stdcall und cdecl unterscheidet und wo die Gemeinsamkeiten liegen. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz