I often see source code using types like uint32, uint64 and I wonder if they should be defined by the programmer in the application code or if they are defined in a standard
The C99 stdint.h defines these:
int8_tint16_tint32_tuint8_tuint16_tuint32_tAnd, if the architecture supports them:
int64_tuint64_tThere are various other integer typedefs in stdint.h as well.
If you're stuck without a C99 environment then you should probably supply your own typedefs and use the C99 ones anyway.
The uint32 and uint64 (i.e. without the _t suffix) are probably application specific.