Autor Beitrag
Ahalex
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mo 07.09.09 11:20 
Hallo,

sorry für das neue Thema, aber nach einer Weile des Suchens im Netz bin ich leider noch nicht zu einer funktionierenden Antwort für meine Frage gekommen.

Ich habe eine C#-Anwendung, welche Funktionen einer C++-DLL verwenden soll. Problem hierbei ist, dass die C++-DLL eine Funktion besitzt, welche als Übergabeparameter zwei char* erwartet.

int test(char* str1, char* str2);

Ich möchte gern den einen der beiden char*, welcher in der Funkltion geändert wird, danach in C# weiterverwenden. Im Prinzip brauche ich also eine Möglichkeit, eine Referenz mit hineinzureichen, mit deren geänderten Wert ich danach weiterarbeiten kann.
Verschiedene Versuche mit StringBuilder, IntPtr und was ich sonst noch so suchte sind leider fehlgeschlagen. Einzige Funktionierende Möglichkeit war bisher die Verwendung von "ref string" als Übergabeparameter und die Änderung der DLL-Funktion, sodass diese char** erwartet. Jedoch scheint mir das keine schöne Lösung.

Besten Dank. ;)
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mo 07.09.09 17:47 
Hi :welcome:

Wenn die Funktion nur den Inhalt des Strings verändern soll, müsste ein StringBuilder-Parameter passen. Wenn sich auch die Länge verändert, ist char** richtig.

_________________
>λ=