2011-11-30 6 views
5

Я создаю программу на C++ с Visual Studio 2010, которая должна запускаться на фоне моей машины.Запуск скрытой программы на C++

Поэтому, когда я запускаю его, я не должен видеть экран CMD во время его работы. Как я могу это сделать? Должен ли я использовать API Win32, или достаточно обычной программы на C++?

Обратите внимание, что в моей программе нет графического интерфейса.

+0

Я спросил его перед http://stackoverflow.com/questions/3875995/system-to-c-without-calling-cmd-exe – aliva

+0

Для этого, вероятно, требуется определенный API для Windows, я понятия не имею, что (только с использованием Linux и зная Posix, но не Win32). –

ответ

13

Использование WinMain():

#include <windows.h> 

int WINAPI WinMain(HINSTANCE inst,HINSTANCE prev,LPSTR cmd,int show) 
{ 
    // program starts here 
    return 0; 
} 

// int main() <-- remove main() 

Затем аке, что ваши настройки проекта установлены так, что вы создаете программу «Win32», а не «Консоль "программы.

enter image description here

Edit: Как @Sehe указывает, WinMain не может быть необходимым, хотя я не совсем уверен, где этот параметр лежит.

+1

Использование WinMain не имеет отношения к этому. Просто измените опцию подсистемы на Win32, и все готово. – sehe

+1

@sehe: Если вы сделаете это в Visual Studio, точка входа по умолчанию будет изменена на WinMain. – MSalters

+0

@sehe Ваше предложение * неверно. Это будет разрешено в: ошибка LNK2019: нерешенный внешний символ _WinMain @ 16, на который ссылается функция ___tmainCRTStartup – FailedDev

2

Очень часто программа, работающая под Windows без «лица» (например, без какого-либо пользовательского интерфейса) реализована как Service.

1

Просто сделайте это графическим приложением вместо приложения командной строки. Щелкните правой кнопкой мыши проект -> Свойства -> Свойства конфигурации -> Коннектор -> Система -> Подсистема -> Windows (/ SUBSYSTEM: WINDOWS).

0

Вы можете работать как процесс Windows (который не прикрепляется к консоли), но никогда не создавайте окно. основное отличие - это подпись WinMain и флаги для компилятора.

Перейти к файлу -> Новый проект, выберите стандартное приложение Windows, затем удалите все, кроме WinMain.

Смежные вопросы