Вы должны быть в состоянии использовать mingw32 для кросс-компиляции исполняемых файлов для Windows, хотя для этого вам нужно будет сделать ваши источники приемлемыми для GCC.
Однако рассматривали ли вы возможность исправления двоичного файла вместо его компиляции? Возможно, все изменилось с тех пор, как я в последний раз пробовал это под XP, но я полагаю, что строки, включенные в программу или в ресурс, поступают либо без изменений, либо в доступной кодировке, которую можно легко исправить, при условии, что вы сохранили длину в памяти одинаковой для чего-то, заканчивающегося нулем, вы всегда можете сделать его короче, поместив ноль раньше). Также вы можете добавить данные в конец исполняемого файла и прочитать их во время выполнения.
Однако, если ожидается, что ваш двоичный файл будет подписан каким-либо образом, вам придется выполнить подпись после изменения.