AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C Funktion aus DLL in Delphi nutzen

Ein Thema von zeras · begonnen am 25. Jan 2011 · letzter Beitrag vom 25. Jan 2011
Antwort Antwort
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#1

C Funktion aus DLL in Delphi nutzen

  Alt 25. Jan 2011, 19:56
Delphi-Version: 2009
Hallo,

ich möchte eine C DLL ansprechen und der C Kontrukt sieht so aus:

extern "C" BOOL WINAPI GetAV(
const char *name,
long* address
);

Umgeschrieben habe ich das so:

Delphi-Quellcode:

arDataTcp = array[0..255] of char;

function GetAV(
           const name : arDataTcp;
           address : LongWord
         ): LongBool stdcall;
Aufruf dann

Delphi-Quellcode:
var
  s : arDataTcp;
  Adr : LongWord;

begin
  StrPCopy(s,'ISS');
  if LslGetAdressVar(&s, &Adr) then begin
  end
Ich bekomme dann immer Zugriffsverletzung bei Lesen von Adresse xxxxx.
Was mache ich falsch?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

AW: C Funktion aus DLL in Delphi nutzen

  Alt 25. Jan 2011, 20:10
Code:
extern "C" BOOL WINAPI GetAV(
const char *name,
long* address
);
Lässt sich eher so übersetzen:
function GetAV(Name: PChar; Address: Pointer): bool; stdcall; bzw.:
function GetAV(Name: PChar; Address: pLongint): bool; stdcall;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.643 Beiträge
 
Delphi 12 Athens
 
#3

AW: C Funktion aus DLL in Delphi nutzen

  Alt 25. Jan 2011, 20:46
Code:
extern "C" BOOL WINAPI GetAV(
const char *name,
long* address
);
Lässt sich eher so übersetzen:
function GetAV(Name: PChar; Address: Pointer): bool; stdcall; bzw.:
function GetAV(Name: PChar; Address: pLongint): bool; stdcall;

Danke: Scheint zu gehen. Nun muss ich nur noch die richtigen Adressen haben und kann weiter testen.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 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