Запустите postgresql в фоновом режиме.
Запустите отдельный поток в вашем приложении, который будет запускать сервер postgresql в локальном режиме, либо связывая его с localhost с каким-либо произвольным свободным портом, либо используя сокеты (поддерживает ли сокеты окна?). Это должно быть довольно просто, что-то вроде:
system ("C: \ Program Files \ MyApplication \ pgsql \ postgres.exe -D C: \ Documents and Settings \ Пользователь \ Локальные настройки \ MyApplication \ database -h 127.0.0.1 -p 12345");
, а затем просто подключитесь к 127.0.0.1:12345.
Когда ваше приложение закрывается, вы всегда можете отправить SIGTERM в вашу ветку, а затем подождать несколько секунд, пока postgresql выйдет (то есть присоединится к ветке).
PS: Вы также можете использовать pg_ctl для управления вашей «встроенной» базой данных, даже без потоков, просто выполните «запуск pg_ctl» (с соответствующими параметрами) при запуске приложения и «остановку pg_ctl», когда выход из него.