Zitat von tron25: „die C-DLL einbinden und die Funktionen direkt aus dem Programm heraus aufrufen“Gugst Du hier. Lade die Projekte runter und probiere sie aus. Wenn Du die Quellen der DLL hast, füge das DLL-Projekt der Projektmappe Deines VB-Hauptprogramms hinzu. Sieh Dir in meinem Testprojekt die Projektsettings an. Sieh Dir die Parameterdeklaration auf beiden Seiten (.NET und native DLL) an und pass ggf. Deine Parameter an. Informiere Dich über die Marshal-Klasse. Und zuletzt: Viel Spaß.
@tron25 Vielleicht führst Du Dir den Post #2 noch mal ausführlich zu Gemüte. Wenn Du das Prozedere verstanden hast, solltest Du mit Deinem Projekt keine Schwierigkeiten mehr haben.
@Radinator Jou. Zitat von tron25: „wo schreibe ich die Klassen hin?“Manchmal ist es echt interessant, sich die Menüpunkte des Studios zu Gemüte zu führen. vb-paradise.de/index.php/Attachment/38162/
Zitat von tron25: „Was bedeutet die Zeile:“Dies ist ein Debug-Hilfsmittel. Wenn der erwartete Ausdruck rauskomt, passiert nix, ansonsten kommt ein entsprechender Dialog. Gugst Du hier.
Zitat von tron25: „Ich habe jetzt "VbCrLf" durch "Environment.NewLine" ersetzt.“Poste mal den relevanten Code. - Einfügen von Zeilenumbrüchen, - Übersetzen, - Darstellen. Mach ggf. ein kleines Projekt, das den Effekt reproduzuert.
Zitat von tron25: „formtype *typeform,“formtype könnte eine Struktur sein, deren Deklaration muss in einem C-Header stehen. Duiese Deklaration musst Du nach .NET portieren. Wenn Du sie gefunden hast, poste sie mal.
Zitat von jvbsl: „Außerdem muss das enum die größe eines Bytes haben“Das passt hicht:Zitat von tron25: „C-Quellcode (1 Zeile)“ @tron25 Lass es so und probiere aus, ob es geht.
@tron25 Jou, das ganze ist ein wenig merkwürdig. Ich hab mal folgende Änderung vorgenommen: VB.NET-Quellcode (7 Zeilen) vb-paradise.de/index.php/Attachment/38282/
Zitat von tron25: „Was meinst du mit "Inhalt verpassen"?“Ich sehe keine Implementierung der Prozedur lou_dotsToChar. Geh da mal rein und überzeuge Dich, dass am Ende dieser Prozedur ein Return WhatEver steht.
In Deinem Code kommen in den Deklarationen UnmanagedType.LPStr und UnmanagedType.LPWStr nebeneinander vor. Das kann ich mir eigentlich nicht vorstellen. Vereinheitliche das mal. Und: Gib ComboBox1 die Property DropDownStyle = DropDownList.
Zitat von tron25: „Ich bekomme zwar eine Nummer zurück, aber nicht die Version.“Du hast die Prozedur als As Integer deklariert, also bekommst Du ein Integer zurück (in dieser Richtung funktioniert das bei einer Function immer, mit anderen Typen nicht). Du musst mal mit der Deklaration etwas rumspielen, das ist etwas Dwetektivarbeit. Anhaltspunkte findest Du im Link in Post #2: Austausch von Daten zwischen einer VB.NET-exe und einer C-DLL, 32 und 64 Bit ==== Probier malVB.NET-Quellcode (5 Zeilen)…
Zitat von tron25: „Eine Idee, wie "lou_translate" bzw. "lou_translateString" verändert werden müssen?“Mach mal ein kleines Demo-Projekt mit entsprechenden Testdaten.
@tron25 Ich werfe das Handtuch. lou_translateString() hat etwas sehr viele Parameter, die alle korrekt gemanaged werden müssen. Warum verwendest Du nicht die alte offensichtlich funktionierende DLL? Vielleicht solltest Du Dich doch mal an den Hersteller wenden.