Einzelnen Beitrag anzeigen

Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

Re: C Funktion, um zwei Strings zu verbinden in DLL

  Alt 16. Aug 2006, 15:18
Zitat von Luckie:
Wie machen das API-Funktionen, dass man da in Delphi das Schlüsselwort var benutzen muss.
Zur Ergänzung zu Dax: das geht natürlich nicht mit Strings, da C einen anderen Speichermanager verwendet.

Zitat von Luckie:
Wie sicher ist die C-Funktion bezüglich BufferOverflows?
Überhaupt nicht. Bessere Variante:
Code:
extern "C" EXPORT int addstr(char *str1, char *str2, char *buffer, int buflen)

    StringCbCopy(buffer, buflen, str1);
    StringCbCat(buffer, buflen, str2);
    return strlen(buffer);
}
Zitat von Luckie:
Und zu guter letzt, wie muss ich es machen, damit meine C-Funktion die erforderliche Größe des Buffers zurückgibt, falls dieser zu klein ist beim Aufruf?
Ganz einfach: strlen(str1) + strlen(str2) mit buflen vergleichen und entsprechend handeln.

// EDIT: Parameterreihenfolge korrigiert
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat