Консольное приложение на C++, скрывая строку заголовка

Следующий макрос вернет требование выравнивания любого заданного типа (даже если это структура):

#define TYPE_ALIGNMENT( t ) offsetof( struct { char x; t test; }, test )

Примечание: я, вероятно, заимствовал эту идею из заголовка Microsoft в некоторый момент назад в моем прошлое ...


Редактировать: как указывает Роберт Гэмбл в комментариях, этот макрос не гарантированно работает. На самом деле, это, конечно, не будет работать очень хорошо, если компилятор настроен для упаковки элементов в структурах. Поэтому, если вы решите использовать его, используйте его с осторожностью.

Некоторые компиляторы имеют расширение, позволяющее получить выравнивание типа (например, начиная с VS2002, MSVC имеет встроенную функцию __alignof()). Их следует использовать, когда они доступны.

6
задан asdrubael 21 October 2009 в 09:28
поделиться

3 ответа

Вы не можете. Обычно не гарантируется, что hWnd консольного окна подходит для всех операций с оконными дескрипторами, как, например, документировано здесь .

5
ответ дан 16 December 2019 в 21:42
поделиться

Вы можете попробовать комплексное решение, включающее сокрытие окна консоли (это возможно), а затем настроить окно (без элементов управления), которое пересылает соответствующие события назад и вперед. из реального окна консоли. В частности, события GDI для рисования содержимого окна консоли в фальшивом окне консоли и взаимодействия с полосой прокрутки (которая, в свою очередь, настраивает консоль ...).

Это решение довольно далекое и довольно техническое.

2
ответ дан 16 December 2019 в 21:42
поделиться

Думаю, я бы написал / использовал две программы. Одна консольная программа выполняет эту работу, а вторая программа является управляемым окном консоли, на котором запущено первое. Скорее всего, уже существуют консольные программы, и некоторые из них можно запустить без заголовка? Или найдите открытый исходный код и измените его.

0
ответ дан 16 December 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: