Forum: Programmieren allgemein
by Flocke,
16. Aug 2006
Dann hab' ich dich nicht richtig verstanden. Ist der Funktionszeiger den korrekt? Kannst du im CPU-Fenster in die Routine hineindebuggen? Vielleicht siehst du da, wo der Fehler auftritt.
Forum: Programmieren allgemein
by Flocke,
16. Aug 2006
Ist auch noch nicht ganz richtig, der Puffer braucht ein Zeichen mehr (abschließende Null), also: strlen(str1) + strlen(str2) + 1.
Forum: Programmieren allgemein
by Flocke,
16. Aug 2006
Zur Ergänzung zu Dax: das geht natürlich nicht mit Strings, da C einen anderen Speichermanager verwendet.
Überhaupt nicht. Bessere Variante:
extern "C" EXPORT int addstr(char *str1, char *str2, char *buffer, int buflen)
{
StringCbCopy(buffer, buflen, str1);
StringCbCat(buffer, buflen, str2);
return strlen(buffer);
Forum: Programmieren allgemein
by Flocke,
16. Aug 2006
Das liegt wohl daran, dass du dir in C "str1" überschreibst. Richtiger wäre:
extern "C" EXPORT int addstr(char *str1, char *str2, char *buffer)
{
strcpy(buffer, str1);
strcat(buffer, str2);
return strlen(buffer);
}