DLL funktionen exportieren (welche Variablen-Typen nutzen?)
-
Ich hätte mal eine Frage bezüglich Dll funktionen exportieren.
Ich hätte eine Funktion der ein Stream (zur not würde auch einfachein Filename gehen) übergeben wird und die einen String zurückgibt. Also praktischString huhu (TStream *stream)
Diese Funktion soll exportiert werden. Ich möchte jedoch auch gerne, dass auch möglichst Benutzer von VB oder VC++ diese DLL nutzen können.
Diese Leute werden wohl eher nicht über einen AnsiString oder einen TStream verfügen. Was kann ich da tun?
-
Standard C/C++ benutzen.
In der funktion kannst du Ruhig BCB Commands nutzen (AnsiString,TStream, etc...)
Aber bei den Rückgaben werten solltest du die Werte konventieren (Standard C/C++).Z.B:
AnsiString go() { AnsiString df = "HALLO ich bin ein ansiString"; return df; }
Mit dem Rückgabe Wert würde nicht jeder Compiler was anfangen können, aber du könntest das z.b. das so machen:
String go() { AnsiString df = "HALLO ich bin ein ansiString"; return df.c_str(); }
Gruß<-DJ BlackEagle
Angaben ohne Gewähr...
-
AnsiString == String!!!
-
auch wenn man Standard C++ benutzt, also std::string funktioniert das nicht. nimm am besten nen BSTR...
-
was um alles in der Welt is BSTR? und wie stehts mit streams? soll ich einfach FILE* benutzen?
-
wenn die dll über vb benutzbar sein soll, natürlich nicht