Hallo zusammen,
ich habe eine ocx, die ich in C# verwenden möchte.
Diese hab ich mit tlbimp.exe in eine dll überführt und in mein Projekt eingebunden. Die ocx ist im System registriert.
Die erzeugte dll stellt mir u.a. folgende Funktion zur Verfügung
public virtual void GetHdDatenreihe(System.DateTime Start, System.DateTime Ende, int PVID, string Pfad, bool Flag, double Schwelle, ref string Dateiname)
In dem letzten Parameter wird der Pfad der erzeugten Datei zurück gegeben.
Wenn ich die OCX testweise direkt in Excel-VBA verwendet funktioniert die Rückgabe auch.
In meinem Programm rufe ich die Funktion wie folgt auf
hdcontrol.GetHdDatenreihe(Start, End, PVID, "F:\\", false, 0, ref filename);
die Funktion selbst funktioniert soweit auch, die Datei wird geschrieben. Nur in filename steht hinterher nicht der Dateiname sondern das, was vor dem Funktionsaufruf schon drin stand.
Wie komme ich an den Wert für den Dateinamen? oder geht das über COM gar nicht ?
Gruß Dominik
Hallo,
ich kenne zwar die DLL nicht genau, versuche aber einmal, anstatt eines strings einen ausreichend dimensionierten StringBuilder zu übergeben.
Hallo,
das Problem besteht nicht nur mit Strings, sondern bei allen Datentypen.
Allerdings habe ich meinem String vorher schon einen längeren Wert zugewiesen, so das die Kapazität größer ist als der Wert der zugeswiesen wird.
btw wie übergebe ich denn da meinen StringBuilder?
Er erwartet doch ein String, und dieser muss eine zuweisbare Variable sein.
Gruß Dominik