Проверка на тип приложения

234
09 апреля 2017, 03:46

Как можно проверить консольное ли приложение или оконное? Может в winapi есть какое-то описание процесса, его свойств?

Answer 1

Если вы используете майкрософтовский SDK, то начиная с версии 10 для проверки "самого себя" у вас есть [недокументированная или полу-документированная] возможность сделать

#include <process.h>
...
_crt_app_type type = _query_app_type();

с возвращаемыми значениями _crt_console_app и _crt_gui_app.

Аналогичные возможности есть и в более ранних версиях SDK, но интерфейс варьируется.

Answer 2

В текущем процессе проверить, является ли приложение консольным, можно так:

#include <Dbghelp.h>
#pragma comment(lib, "Dbghelp")
extern "C" const IMAGE_DOS_HEADER __ImageBase;
...
bool isConsole(){
    PIMAGE_NT_HEADERS nt = ImageNtHeader((void*)&__ImageBase);
    return nt->OptionalHeader.Subsystem == IMAGE_SUBSYSTEM_WINDOWS_CUI;
}
READ ALSO
Отличия, принцип работы vector::reserve() и vector::capacity()

Отличия, принцип работы vector::reserve() и vector::capacity()

Пишу для себя реализацию контейнера vectorИ не могу понять принцип работы и что вообще делают методи vector::capacity() и vector::reserve()

255
Как подключить audio visualizer?

Как подключить audio visualizer?

Не понимаю, просто на html странице(ссылка на страницу) всё работает, к сайту же не получается подключить, делаю всё тоже самоеПочему не хочет...

297
Проблема с slick slider и owl carousel

Проблема с slick slider и owl carousel

Проблема заключается в одновременном использовании variableWidth(autoWidth) и centerMode(center)Когда в слайдере мало картинок, ни одна библиотека не справляется...

342
Как сделать ajax запрос в reactjs?

Как сделать ajax запрос в reactjs?

просмотрел кучу статей, как то все очень усложнено

389