DllImport char* Problem

26/03/2009 - 09:54 von Aschaefen | Report spam
Hallo zusammen,
ich muss da leider noch einmal nachhacken(zu meinem Post von gestern), da
ich nicht weiterkomme.
Folgendes Szenario:
Per Pinvoke/DllImport will ich auf eine Funktion zugreifen die als Parameter
den Ergebnisbuffer beinhaltet. Die Parameter ist in der h - Datei deklariert
als char* . Wenn ich nun im aufruf der Funktion mit ref char result den
Aufruf mach, bekomme ich ein Ergebnis allerdings na klar nur das erste
zeichen. Wie stelle ich es an den kompletten Inhalt zu bekommen, char[] ist
nicht kompatibel in der Typensignatur, mit einem Stringbuilder bekomme ich
als Ergebniss bei dem ersten Zugriff nur wirre Zeichen und beim zweiten
Zugriff aus das Ergebnis eine Speicherverletzung.

Liebe Grüße und schon mal danke für euere Hilfe.

Axel
 

Lesen sie die antworten

#1 Frank Dzaebel
26/03/2009 - 15:51 | Warnen spam
Hallo Aschaefen,

ich vermute, Du konntest Dein Problem
jetzt durch den StringBuilder-Hinweis, den
ich Dir ja schon am Anfang gab, jetzt
lösen. Grund war ein Verschreiber Deinerseits.

Ansonsten nochmal die Referenz zu
den Beispielen der Nutzung von StringBuilder,
die ich Dir schon posteste:

Frank schrieb:
... hier ein Nutzungsbeispiel:

[pinvoke.net: CredUIPromptForCredentialsW (credui)]
http://www.pinvoke.net/default.aspx...ialsW.html

[Mit C# arbeiten - Verwenden von Win32 und anderen Bibliotheken]
http://msdn.microsoft.com/de-de/lib...31203.aspx



Falls es noch Probleme gibt, nochmal melden.


ciao Frank
Dipl. Inf. Frank Dzaebel [MCP, MVP C#]
http://Dzaebel.NET

Ähnliche fragen