Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   String/Char-Pointer aus C# DLL korrekt auslesen (https://www.delphipraxis.net/178329-string-char-pointer-aus-c-dll-korrekt-auslesen.html)

Testsieger 2. Jan 2014 10:40

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Ich bekomme offensichtlich die Pointeradresse zurück und kann sie auch weitergeben (siehe beide Funktionsaufrufe:
1. Aufruf einlesen von varname2, dann in der 2. Funktion Weitergabe der Pointeradresse an die DLL). Das funktioniert
einwandfrei. Aber das Auslesen der Pointeradresse klappt leider nicht.

DeddyH 2. Jan 2014 10:52

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Ich bin zwar kein Experte in C/C++/C#, aber rein syntaktisch sieht mir das eher nach C++ aus. In C# werden laut http://www.mycsharp.de/wbb2/thread.php?threadid=12251 auch dort Ausgabeparameter mit out deklariert. Zeig doch nochmal den gesamten Code, der die AV verursacht, vielleicht stimmt da etwas nicht.

Testsieger 2. Jan 2014 10:59

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Es wird C++ sein, da kenne ich mich auch nicht richtig aus.

DeddyH 2. Jan 2014 11:09

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Ein Versuch noch:
Delphi-Quellcode:
Function GetVarInfo(hFile, iVar:Integer; varname: PAnsiChar; var varinfo: integer): Integer;stdcall;
  external 'c:\test\io32.dll' name 'GetVarInfo';

...

var
  hFile, iVar: integer;
  varname2: AnsiString;
  varinfo: integer;
begin
  SetLength(varname2, 1024);
  FillChar(varname2, Length(varname2), #0);
  fehler := GetVarInfo(hFile, iVar, PAnsiChar(varname2), varinfo);
  SetLength(varname2, StrLen(PAnsiChar(varname2)));
  ShowMessage(varname2);
end;

Testsieger 2. Jan 2014 11:25

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Ich hatte auch schon weiter experimentiert und das jetzt noch mal ohne "out" nachgebaut. Gab jetzt keine AV (war dann wohl vorhin doch noch ein anderer Fehler drin), aber habe trotzdem noch keinen Inhalt. Ich experimentiere jetzt mal ohne "out" weiter (sind ja 2 Funktionen mit "out").

Ich versuche es aber auch mit deinem erweiterten Ansatz.

Testsieger 2. Jan 2014 11:46

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Ich habe jetzt "out" rausgenommen. und nach deiner Code auch die Variable null-terminiert, aber sie ist immer noch leer.
Allerdings gibt es auch keine AV mehr!

DeddyH 2. Jan 2014 11:51

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Was steht denn in "fehler"?

Testsieger 2. Jan 2014 11:56

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Yep, hatte ich nicht mehr berücksichtigt, da vorher immer die "0" kam. Steht jetzt ein Wert drin.
Den prüfe ich jetzt mal.

Danke erstmal.

Testsieger 2. Jan 2014 12:06

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Das war's. Jetzt funzt es.

Herzlichen Dank für deine Unterstützung!!!:-D:-D

DeddyH 2. Jan 2014 12:16

AW: String/Char-Pointer aus C# DLL korrekt auslesen
 
Und woran lag es nun genau?


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:43 Uhr.
Seite 2 von 3     12 3      

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