Hallo C#-User,
ich habe erneut ein Problem mit der Umsetzung bzw. Nutzung einer DLL-Funktion. Diesmal mit der Übergabe einer Struktur. Die Funktionsbeschreibung der DLL-Funktion lautet im Original:
<PRE>short ExternDllFunction(char Parameter_1, Parameter_2 = Struktur* StrukturDefinition)</PRE>
Es wird als Parameter_2 also ein Pointer auf eine Struktur vom Typ "StrukturDefinition" erwartet. Leider habe ich bei der Umsetzung so meine Schwierigkeiten. Ich habe in C# die folgend Struktur erzeugt:
<PRE>/// Struktur
public struct myStructure
{
public string para_1, para_2, para_3;
public myStructure(string para_1, string para_2, string para_3)
{
this.para_1 = value_1;
this.para_2 = value_2;
this.para_3 = value_3;
}
}</PRE>
Ich habe folgende Fragen:
1. Wie muss ich die externe Funktion deklarieren, damit als 2. Parameter eine Struktur vom Typ "StrukturDefinition" erwartet wird.
2. Wie übergebe ich diese Struktur nun als 2. Parameter an die externe DLL-Funktion?
Ich habe den Aufruf in der folgenden Form definiert, was natürlich falsch ist.
<PRE>[DllImport("extern.dll", CharSet = CharSet.Ansi)]
public static extern short ExternDllFunction(StringBuilder Parameter_1, StringBuilder Parameter_2);</PRE>
Der Aufruf funktioniert zwar, aber die Funktion liefert nicht das korrekte Ergebnis. Kann jemand helfen?
jlo
ich habe erneut ein Problem mit der Umsetzung bzw. Nutzung einer DLL-Funktion. Diesmal mit der Übergabe einer Struktur. Die Funktionsbeschreibung der DLL-Funktion lautet im Original:
<PRE>short ExternDllFunction(char Parameter_1, Parameter_2 = Struktur* StrukturDefinition)</PRE>
Es wird als Parameter_2 also ein Pointer auf eine Struktur vom Typ "StrukturDefinition" erwartet. Leider habe ich bei der Umsetzung so meine Schwierigkeiten. Ich habe in C# die folgend Struktur erzeugt:
<PRE>/// Struktur
public struct myStructure
{
public string para_1, para_2, para_3;
public myStructure(string para_1, string para_2, string para_3)
{
this.para_1 = value_1;
this.para_2 = value_2;
this.para_3 = value_3;
}
}</PRE>
Ich habe folgende Fragen:
1. Wie muss ich die externe Funktion deklarieren, damit als 2. Parameter eine Struktur vom Typ "StrukturDefinition" erwartet wird.
2. Wie übergebe ich diese Struktur nun als 2. Parameter an die externe DLL-Funktion?
Ich habe den Aufruf in der folgenden Form definiert, was natürlich falsch ist.
<PRE>[DllImport("extern.dll", CharSet = CharSet.Ansi)]
public static extern short ExternDllFunction(StringBuilder Parameter_1, StringBuilder Parameter_2);</PRE>
Der Aufruf funktioniert zwar, aber die Funktion liefert nicht das korrekte Ergebnis. Kann jemand helfen?
jlo
Comment