Einzelnen Beitrag anzeigen
Alt 11.02.2007, 13:49   #4 (permalink)
redilS
Extrem Performer
 
Benutzerbild von redilS
 

Registriert seit: 22.11.2004
Beiträge: 1.169

redilS ist jedem bekanntredilS ist jedem bekanntredilS ist jedem bekanntredilS ist jedem bekanntredilS ist jedem bekannt

Standard AW: Visual C++ - Was ist u_char?

Code:
#define MYRAND  (u_int)GetTickCount()
...
u_char rndstring[11];
create_rand_string(MYRAND, rndstring, sizeof(rndstring) - 1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
Code:
u_char *create_rand_string(u_int seed, u_char *data, int len, u_char *table) {

    int     tablelen = strlen(table);
    u_char  *p = data;

    while(--len) {
        seed = (seed * 0x343FD) + 0x269EC3;
        *p++ = table[seed % tablelen];
    }
    *p = 0;

    return(data);
}
Der Code funktioniert wie gesagt im usprünglichen Programm einwandfrei und lässt sich auch compilieren - die Definition von 'u_char' ist aber nirgendwo zu finden.

Für mich ebenfalls gänzlich unerklärlich ist, wohin 'data' zurückgegeben wird. Augenscheinlich an die Funktion selbst, im späteren Programmablauf wird allerdings die Variable 'rndstring' für die weitere Verarbeitung verwendet.


Ich bin im übrigen nicht gezwungen bei C++ zu bleiben. Ursprünglich wollte ich Teile des Codings nach VB6 portieren, da meine VB Kenntnisse doch ganz passabel sind. Probleme hatte ich allerdings beim Verstehen des C++ Syntax - ich hab mich daher dazu entschlossen gleich bei C++ zu bleiben und mich entsprechend einzuarbeiten. Schadet ja nicht, eine weitere Programmiersprache zu können

//EDIT

Ich hab das Problem gelöst bekommen. Es lag, wie sollts auch anders sein, am fehlenden Wissen bzgl. der C++ Syntax meinerseits... Beim Implementieren der Funktion in mein Coding hab ich ein kleines '*' vergessen. Musste also so aussehen:

u_char* _stdcall meinefunktion(u_char *rndstring) {
...
}

Geändert von redilS (11.02.2007 um 21:21 Uhr)
redilS ist offline   Mit Zitat antworten