2013-11-18 5 views
0

При компиляции этого кода:Неопределенная ссылка на 'SetCurrentConsoleFontEx'?

PCONSOLE_FONT_INFOEX Font_Info; 
//Adjust heights 
Font_Info.dwFontSize.X = 9; 
Font_Info.dwFontSize.Y = 9; 
SetCurrentConsoleFontEx(StdHandle, FALSE, Font_Info); 

GCC сообщает

undefined reference to 'SetCurrentConsoleFontEx' 

Но MSDN говорит, что заголовок #include<windows.h>

http://msdn.microsoft.com/en-us/library/windows/desktop/ms686200(v=vs.85).aspx

Почему? И как решить эту проблему? БЛАГОДАРЮ.

PS,

я не мог найти никаких заявлений в wincon.h и windows.h

+1

Это ошибки компоновщика. Вы связываетесь с библиотеками WIN32? Более конкретно, библиотека 'kernel32' (как указано в ссылке). –

+0

@ Joachim Pileborg этот? libkernel32.a? (Я новичок .. :-() –

+0

Да, просто добавьте '-lkernel32' в конец командной строки при построении/связывании. –

ответ

1

Это будет не первый раз, когда функция отсутствует в SDK MinGW, и особенно не такая недавняя функция, как SetCurrentConsoleFontEx, которая открывается только с Vista.

Ваш libkernel32.a слишком стар для этого; если вы хотите использовать эту функцию из MinGW, вам может потребоваться доступ к ней динамически.

+0

Я так думаю. Но где взять последнюю версию libkernel32.a? –

0

Undefiend ссылка относится к проблеме связей. Определение может быть в windows.h, но вам нужно связать с соответствующей библиотекой (Kernel32.lib) для генерации окончательного двоичного кода.

+0

GCC reports: error: неизвестный тип имя «PCONSOLE_FONT_INFOEX» Почему? Я искал MSDN. –

+0

@KVD Может быть, вам не хватает «Wincon.h» – jcm

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