Question

I have found the rand_s function, part of the CRT, to be extremely useful while developing my application. However, it is my understanding that it is not prototyped in recent MinGW header files.

Therefore I am asking for a comprehensive means of either providing or prototyping such a function. I have considered using an #ifdef MINGW style hook, however, this may fail should future revisions start prototyping the function.

Therefore, what is the best way of making the function available to my program such that it can be compiled with MinGW?

Was it helpful?

Solution

One hackish way to work around this is:

#define rand_s silly_function_name
#include <mingw.h>
#undef rand_s

extern errno_t rand_s (unsigned int *randomValue);

That way, if mingw starts providing a prototype for it, it will not interfere (unless they provide it as a macro, which is unlikely).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top