Интерфейс CGI работает следующим образом: при поступлении запроса веб-сервер выполняет процесс, HTTP-ввод (данные AKA POST) передается процессу через стандартный ввод данных, генерируемый контент и заголовки отправляются через стандартный вывод. Переменные сервера передаются через окружение.
Теперь ваш вопрос недостаточно ясен. У вас есть CGI-совместимый локальный двоичный файл, который вы хотите вызвать из программы? Или вы хотите вызвать CGI-совместимый двоичный файл где-нибудь на веб-сервере?
В первом случае используйте обычные средства создания процесса (CreateProcess, fork / exec) с перенаправлением каналов ввода-вывода. В последнем случае используйте клиентскую библиотеку HTTP (curl, WinInet) для выдачи HTTP-запроса.