004
24.04.2007, 21:50 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Hi, ALSO:
in einer DLL die du dynamisch lädst (mit LoadLibrary, GetProcAddress) kannst du nur mit großen Verenkungen C++-"Extensions" verwenden, ich denke mal du benutzt export "C" o.ä um die funktionen als C-Schnittstelle auszuweisen. In dem Fall kannst du eben string usw nicht direkt übergeben/zurückliefern.
Wenn du die DLL statisch an deine Anwendung bindest (also die dllexport-lib mit in deine anwendung bindest) kannst du sehr wohl STL-Typen auch in den Funktionsdeklarationen verwenden.
Was ich dir nur sinnvollerweise sagen will ist außerdem noch:
char * zurückliefern ist gefährlich wenn du z.b einfach nur den Pointer einer lokalen Variable zurücklieferst, der ist nach der Funktion nicht mehr gültig! Sinnvoller ist da den Speicher sich geben zu lassen:
C++: |
const char *function(char *ziel, unsigned int length) { // ... return ziel; }
|
so muss der Aufrufer sich um den Speicher kümmern und du hast keine Probleme. -- class God : public ChuckNorris { }; |