Bonjour j'ai un problème de compilation.

J'ai isolé mon problème avec le petit source suivant :

#include <windows.h>

void ToCallVoid(DWORD errno) { }

int Caller(DWORD errno) {
ToCallVoid(errno);
return 0;
}

int wmain (int argc, wchar_t **argv, wchar_t **envp) { return 0; }


J'ai l'erreur suivante :

.\src\testp.cpp:6:20: error: invalid conversion from 'DWORD' {aka 'long unsigned int'} to 'DWORD* (*)()' {aka 'long unsigned int* (*)()'} [-fpermissive]
6 | ToCallVoid(errno);
| ^~~~~
| |
| DWORD {aka long unsigned int}
.\src\testp.cpp:3:23: note: initializing argument 1 of 'void ToCallVoid(DWORD* (*)())'
3 | void ToCallVoid(DWORD errno) { }
| ^

J'utilise : c++.exe (MinGW-W64 x86_64-ucrt-posix-seh, built by Brecht Sanders, r3) 15.2.0

J'ai essayé différentes options de compilation mais toujours le même résultat.
Le plus simple : c++.exe -o .\src\testp.cpp.obj -c .\src\testp.cpp
donne bien la même erreur.

Quelqu'un a-t-il une explication ?