Получение размера консоли после инициализации вывода

Я создаю кроссплатформенное приложение и для этого открываю файлы исходного кода заголовков GCC / Mingw и копирую определения оттуда в мои файлы заголовков по мере необходимости. Проект до сих пор работает правильно, но теперь обнаружил ошибку и код

console.c

     #include<console.h>
HANDLE write_Consoleint get_console_size(){
if( ( write_Console = CreateFile( "CONOUT$",
GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ |
FILE_SHARE_WRITE, 0L, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0L) ) == (HANDLE) -1
) {
printf("opened");
}
}void console_settings_init(){

//For writing on the console
write_Console = GetStdHandle(STD_OUTPUT_HANDLE);

//For Reading from Console
read_Console = GetStdHandle(STD_INPUT_HANDLE);

// Set up the required window size:
SMALL_RECT windowSize = {0, 0, CONSOLE_WIDTH-1, CONSOLE_HEIGHT-1};

// Change the console window size:
SetConsoleWindowInfo(write_Console, TRUE, &windowSize);// Create a COORD to hold the buffer size:
COORD bufferSize = {CONSOLE_WIDTH, CONSOLE_HEIGHT};

// Change the internal buffer size:
SetConsoleScreenBufferSize(write_Console, bufferSize);

recheck_console():
}

* Если я не пишу функцию get_console_size, то она очень хорошо скомпилирована *

Но после добавления get_console_size выдает следующую ошибку с функцией CreateFile как __cdecl:

 console.c:(.text+0x4a): undefined reference to `_CreateFile'

Но когда я попытался скомпилировать это с __declspec (dllimport), он выдает следующую ошибку:

 console.c:(.text+0x4a): undefined reference to `__imp__CreateFile'

Используемая команда компиляции GCC:

 gcc -DHAVE_CONFIG_H -I. -I..  -I../include
-nostdinc -Wall -fno-builtin -Wno-pragmas -Werror -MT
console.o -MD -MP -MF .deps/console.Tpo -c -o console.o console.c
mv -f .deps/console.Tpo .deps/console.Po

После поиска в Google я обнаружил, что это встроенная функция в Kernel32.dll.

Теперь я просто хочу убедиться, что размер консоли установлен правильно или нет?

Можно ли использовать любой другой метод или какие-либо другие вещи для этого?

Что _чертенокФункции _CreateFile и `_CreateFile и где они определены?

Как я могу связать Windows Kernel32.dll с GCC Project?

0

Решение

На Windows, то я думаю, что вы пытаетесь это объяснить Вот. В основном, ссылка на статью вызывает AllocConsole чтобы получить ручку для новой консоли, а затем GetConsoleScreenBufferInfo чтобы получить метаданные о консоли, такие как ее ширина и высота.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]