И здесь мы видим проблему с макросами.
В вашем коде нет ничего плохого, проблема в библиотеках Windows. На самом деле есть функция с именем AddJob в заголовках Win32, но не совсем ... Не объявляйте функцию Addjob, но вместо этого добавьте AddJobA и функцию AddJobW, которые работают с не-Unicode и Unicode строки соответственно.
A
в конце имени вашей функции происходит из-за макроса, определенного в заголовке окна, который был определен для работы с юникодом. По сути, они будут иметь что-то вроде:
#ifdef UNICODE
# define AddJob AddJobW
#else
# define AddJob AddJobA
#endif
Это позволяет людям просто использовать AddJob
, и макросы будут указывать функции на правильную функцию Unicode / Non-Unicode. Проблема, конечно, в том, что #define
влияет на все, что происходит с вашей функцией.
Чтобы это исправить, вы можете либо #undef AddJob
, либо просто изменить имя своей функции на что-то, что не является функцией Win32.