Wenn das mit dem struct DAPI_OPENMODULEEX_STRUCT so stimmt, könntest du folgendes probieren:
- Mach ein Array Of Char der Länge (256 + 8 + 8 + 8 +32). Bedenke, dass ein ulong acht Byte lang ist, also 64 Bit.
- Fülle das ganze Array mit Nullen (0x00) auf.
- Schreibe an die erste Stelle die IP-Adresse, z.B. "192.168.1.10" - und zwar in ASCII: String nach Array, Array ersetzen. Beachte, dass die erste Stelle den Index 0 hat.
- Ab der (256+1). Stelle (die hat den Index 256) schreibst du den Timeout als 64bit-Binärzahl (= 8 Byte), und zwar beginnend mit dem höchstwertigen Teil.
- Ab der (256+8+1). Stelle (die hat den Index 256+8) schreibst du den Port als 64bit-Binärzahl (= 8 Byte), und zwar beginnend mit dem höchstwertigen Teil.
- Ab der (256+8+8+1). Stelle (die hat den Index 256+8+8) schreibst du den Encryption-Typ als 64bit-Binärzahl (= 8 Byte), und zwar beginnend mit dem höchstwertigen Teil. Offensichtlich ist dieser Wert 0.
- Ab der (256+8+8+8+1). Stelle (die hat den Index 256+8+8+8) schreibst du das Passwort als 32 Byte langen String rein. Offensichtlich wird hier nichts benötigt. Beachte, dass dieser Bereich bereits mit Nullen gefüllt ist.
Dann einfach das Array of Char in einen String wandeln. Zur Kontrolle prüfst du, ob der String die richtige Länge hat: nämlich (256 + 8 + 8 + 8 +32). Diesen String hängst du an den DLL-Knoten, so wie in deinem Bild angegeben (oder an den entsprechenden Eingang des VIs, das den Code aus deinem Bild enthält).
Bevor du den ersten Test machst, speicherst du alles ab. Dann ist nämlich der Ärger nicht so groß, wenn infolge eines fehlerhaften Codes die LV-IDE abstürzt ...