AGB  ·  Datenschutz  ·  Impressum  







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

C Dll benutzen mit Char*

Ein Thema von moelski · begonnen am 4. Okt 2010 · letzter Beitrag vom 4. Okt 2010
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

AW: C Dll benutzen mit Char*

  Alt 4. Okt 2010, 11:46
Moin !

Ich habe es nun mit PAnsiChar und auf PWideChar getestet, aber in beiden Fällen klappt es nicht.
Delphi-Quellcode:
       try
         GetMem(Buffer, 20);
         test := PWideChar('!!!!');
         len := DLLFunc(test, Buffer, 20);
         ShowMessage('Len : ' + IntToStr(len) + #13#10 +
                     'Erg : ' + Buffer);
       finally
         FreeMem(Buffer);
       end;
Zitat:
typisiertem Adress-Operator
Das sollte dann wie aussehen?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#2

AW: C Dll benutzen mit Char*

  Alt 4. Okt 2010, 11:51
Was heißt "klappt nicht"? Welchen Wert bekommst Du denn zurück?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
plusplus

Registriert seit: 30. Jul 2010
106 Beiträge
 
Delphi 2009 Architect
 
#3

AW: C Dll benutzen mit Char*

  Alt 4. Okt 2010, 11:52
benutze pChar und gebrauche cdecl instead of stdcall. (is a c dll right)

this should solve your problem.
Grid Computing made simple - http://xerocoder.com
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#4

AW: C Dll benutzen mit Char*

  Alt 4. Okt 2010, 11:58
Mal ein anderer Ansatz:
Delphi-Quellcode:
var
     Buffer, test: {Ansi}string;
begin
        SetLength(Buffer, 20);
        test := '!!!!';
        len := DLLFunc(P{Ansi}Char(test), @Buffer[1], Length(Buffer) * SizeOf(char));
        ShowMessage(Buffer);
Und auch mal mit cdecl versuchen wie bereits erwähnt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.749 Beiträge
 
Delphi 2007 Professional
 
#5

AW: C Dll benutzen mit Char*

  Alt 4. Okt 2010, 12:24
Zitat:
typisiertem Adress-Operator
Das sollte dann wie aussehen?
In den Projektoptionen unter Compiler, Gruppe Syntaxoptionen, gibt's ne Checkbox "Typisierter @-Operator". Wenn du die angehakt hast, compiliert er den Code mit den Klammeraffen gar nicht erst.
Uli Gerhardt
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#6

AW: C Dll benutzen mit Char*

  Alt 4. Okt 2010, 13:02
Moin !

Inzwischen funktioniert es.
Es war noch ein Bug in der DLL.

@uligerhardt:
Danke für den Hinweis.

@DeddyH:
Diese Variante funktioniert genauso wie meine erst genannte.

Ich danke für die zahlreichen Hinweise !!
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  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 17:46 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