Avatar billede morten_s Nybegynder
27. oktober 2001 - 17:31 Der er 18 kommentarer og
1 løsning

Andvende en DLL

Jeg har en dll, med nogle funktioner i som jeg ønsker at andvend, dll\'en er skrevet i C, men jeg har header filen hvor funktionenerne er defineret.

Spørgsmålet går helt generelt på hvordan jeg andvender funktionerne i mit delphi program

2 af funktionerne i DLL ser ud som her:
SCOMMDLL_API int    WINAPI PcdRdIOF(PCDCONN PcdConn, DWORD Type, DWORD Address, DWORD Count, LPSTR lpData);
SCOMMDLL_API int    WINAPI PcdWrOF(PCDCONN PcdConn,    DWORD Type, DWORD Address, DWORD Count, LPCSTR lpData);

PCDCONN har nedenstående deklaration:

@type PCDCONN | Handle to connection informations.<nl>This handle is passed
by value to most of the Pcdxxx functions, except for functions <f PcdDialDialog>,
<f PcdConnectChannel> and <f PcdComOpen> where a pointer to the handler is expected.
*/
typedef DWORD PCDCONN;

// Open and connection.

#define PCD_PHONESIZE 64    //@def PCD_PHONESIZE | Size of phone number string (64)
#define PCD_CHANNELSIZE 64    //@def PCD_CHANNELSIZE | Size of channel string (64)
#define PCD_DEVICESIZE 64    //@def PCD_DEVICESIZE | Size of device name (64)
#define PCD_SECTIONSIZE 64    //@def PCD_SECTIONSIZE | Size of section string (64)
#define PCD_LOCSIZE 64        //@def PCD_LOCSIZE | Size of location name (64)
Avatar billede martinlind Nybegynder
27. oktober 2001 - 18:10 #1
gå op på dr.bob\'s hjemme side og hent hans C-header conv. så får du en delphi pas fil du kan bruge
Avatar billede morten_s Nybegynder
27. oktober 2001 - 18:39 #2
Hvor bor ham dr. Bob ?
Avatar billede morten_s Nybegynder
27. oktober 2001 - 18:40 #3
Nå han bor jo her http://www.drbob42.com/
Avatar billede morten_s Nybegynder
27. oktober 2001 - 19:00 #4
Dr. Bob må desværre opgive efter få linier, er der en som er skrap til C som vil se på problemet
Avatar billede borrisholt Novice
28. oktober 2001 - 15:06 #5
hej morten send det til mig så skal jeg hurtigt knækket den

Jens B
Avatar billede morten_s Nybegynder
28. oktober 2001 - 18:04 #6
Hej Jens, det er sendt
Avatar billede morten_s Nybegynder
29. oktober 2001 - 13:55 #7
Hej Jens, er det til at finde ud af ?
Avatar billede ten13 Nybegynder
30. oktober 2001 - 15:37 #8
Hej

Der er to måde hvorpå man kan linke til en DLL. Dynamisk og Statisk. Nedenfor viste løsning er den statiske måde at gøre det på. Er der noget galt, vil programmet typisk crashe før det overhovedet er startet. En let måde at finde ud af om man gør det rigtigt eller ej.
Da jeg ikke er i besidelse af DLL\'en gør det temmeligt svært. Men jeg prøver. Du må selv \"fedte\" lidt med det, hvis det ikke virker i første omgang. Jeg har givet et par hints.

unit dll_stuff;

interface
// skal du f.eks. importere MessageBox gøres det sådan her.
function MessageBox(Handle : HWND; Text, Caption : pchar; Flags : DWORD) : DWORD; stdcall; external \'user32.dll\' name \'MessageBoxA\';
// for dit vedkommende vil det se ca. sådan her ud.
function PcdRdIOF(PcdConn : DWORD, Type_, Address, Count : DWORD, lpData : pchar) : integer; stdcall; external \'theName.dll\';
function PcdWrOF(PcdConn : DWORD, Type_, Address, Count : DWORD, lpData : pchar) : integer; stdcall; external \'theName.dll\';

// SCOMMDLL_API ved jeg ikke hvad er defineret som. Det er jokeren i dette spil.
// WINAPI tyder på at du skal benytte stdcall. Du kan prøve med pascal, safecall eller cdecl i stedet.

// på mig virker det tydeligt at du skal kalde <f PcdComOpen> og evt. <f PcdConnectChannel>
// functionerne først.


implementation

end.
Avatar billede morten_s Nybegynder
03. november 2001 - 18:10 #9
Hej Jens..... har du kigget på det ?????
Avatar billede dkn Nybegynder
25. november 2001 - 00:37 #10
Hvis du kan komme til at sende dll\'en, kan jeg da prøve at lave det for dig...
Avatar billede morten_s Nybegynder
25. november 2001 - 11:06 #11
Hej dkn

det kan jeg godt, men hvor skal jeg sende den hen ?
Avatar billede dkn Nybegynder
25. november 2001 - 13:00 #12
sorry...
dkn@pc.dk
Avatar billede morten_s Nybegynder
27. november 2001 - 14:37 #13
dkn> Har du prøvet at se på det ?
Avatar billede dkn Nybegynder
27. november 2001 - 14:38 #14
Jeg har planner om at gøre det her idag, jeg kom helt fra det.

dkn
Avatar billede morten_s Nybegynder
27. november 2001 - 14:39 #15
Lyder godt ;-)))
Avatar billede morten_s Nybegynder
27. november 2001 - 14:39 #16
Jeg hæver gerne point summen til det dobbelte hvis det kan motivere
Avatar billede dkn Nybegynder
27. november 2001 - 15:16 #17
Ok jeg har sendt en mail afsted håber du kan bruge det til noget.

dkn
Avatar billede dkn Nybegynder
02. december 2001 - 21:53 #18
Kunne du bruge det?
Avatar billede morten_s Nybegynder
03. december 2001 - 20:50 #19
dkn> Undskyld, men jeg har ikke noget at kigge på det endnu
men det er ikke glemt, da jeg mangler den
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester