![]() |
C(++) -> Delphi: IN const PVOID pContext...
Hi,
hab hier folgende C(++) Funktion (?):
Code:
Soweit komme ich in Delphi:
typedef DWORD (WINAPI *OnButtonsCB)(IN int device,
IN DWORD dwButtons, IN const PVOID pContext);
Delphi-Quellcode:
Ist das soweit richtig? Was fang ich mit diesem PVOID an? Könnte das ein Pointer auf eine Procedure sein?
function OnButtonsCB(device: Integer; dwButtons: DWORD;
const pContext: {PVOID}): DWORD; Mfg |
Re: C(++) -> Delphi: IN const PVOID pContext...
PVOID = Pointer to void = void*, also in Delphi einfach Pointer.
WINAPI bedeutet außerdem, wenn ich mich nicht irre, dass du deine Funktion als stdcall deklarieren musst. |
Re: C(++) -> Delphi: IN const PVOID pContext...
Hi OregonGhost,
ein einfacher Pointer, ok. :D Das mit WINAPI und stdcall wird wohl auch sein, da eine *.lib-Datei benötigt wird. |
Re: C(++) -> Delphi: IN const PVOID pContext...
Hallo,
was hat denn eine Lib damit zu tun ? AFAIK ist die Lib in c++ in diesem Fall dafür, dass du nach dem Einbinden direkt die Dll-Funktionen aufrufen kannst. Heiko |
Re: C(++) -> Delphi: IN const PVOID pContext...
Hieße das, dass ich die .lib nicht mit Delphi ansprechen kann?
|
Re: C(++) -> Delphi: IN const PVOID pContext...
Zitat:
Gruß Der Unwissende |
Re: C(++) -> Delphi: IN const PVOID pContext...
Hi,
dann hol ich ein bisschen weiter aus. Ich versuche gerade die Header-Datei des Logitech-G15-SDKs zu übersetzen. Dazu gibt es eine lglcd.h, sowie diese lglcd.lib. In C(++) benutzen die das dann so:
Code:
Ich möchte, per Delphi, das LCD der G15-Tastatur ansteuern.
// include the Logitech LCD SDK header
#include "../../include/lglcd.h" // make sure we use the library #pragma comment(lib, "lgLcd.lib") |
Re: C(++) -> Delphi: IN const PVOID pContext...
Mit eine lib wird Dir das nicht ohne weiteres gelingen. Wenn die durch einen Borland-Compiler erstellt wurde ist Delphi glaube ich durchaus dazu in der Lage die zu verwenden, bei jedem anderen Compiler hingegen nicht. Der Code ist eben C++ spezifisch gelinkt wurden, da werden die Dinge entsprechend etwas anders aussehen als in Delphi (Namensräume, andere Klassen, Templates, ...), so dass Delphi die eben nicht verwenden kann.
|
Re: C(++) -> Delphi: IN const PVOID pContext...
Hi,
dann wird mein vorhaben wohl scheitern, da die .lib in C(++) geschrieben wurde. Jedoch, fällt mir gerade ein, haben andere es schon übersetzt. Jetzt versteh ich auch, warum die noch über eine DLL gehen. Die DLL wurde dann wohl in C(++) geschrieben und linkt diese .lib mit ein. |
Re: C(++) -> Delphi: IN const PVOID pContext...
Code:
uebersetzt zu:
typedef DWORD (WINAPI *OnButtonsCB)(IN int device,
IN DWORD dwButtons, IN const PVOID pContext);
Delphi-Quellcode:
type
OnButtonsCB = function(device: Integer; dwButtons: DWORD; pContext: Pointer): DWORD; stdcall; |
Re: C(++) -> Delphi: IN const PVOID pContext...
Zunächst einmal wurde die Arbeit, das ganze G15-Geraffel Delphi-tauglich zu machen, bereits gemacht. Werf mal einen Blick auf
![]() Auch hier wurde eine DLL benutzt, um die LIB Delphi-tauglich zu machen. Bedauerlicherweise hat der Author dieser DLL seine Sourcen nicht veröffentlicht und ist verschwunden... Ich hab dann eine Ersatz-DLL gebaut und auch den Source veröffentlicht. Zu finden ![]() |
Re: C(++) -> Delphi: IN const PVOID pContext...
Hi Olaf,
dass sich jemand die Arbeit schon gemacht hat, ist klar. Ich mache das eig. nur für mich aus Lerngründen. Deswegen möchte ich auch nicht "abspicken" (Sitzen, 6!) :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz