#include <sstream>
#include <iostream>
#include <stdio.h>
#include <iomanip>
#include <string>
#define _WIN32_WINNT 0x500 //tells that this is win 2000 or higher, without GetConsoleWindow would not work
#include <windows.h>
using namespace std;
int main() {
PCONSOLE_FONT_INFO lpConsoleCurrentFont;
GetCurrentConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), false, lpConsoleCurrentFont);
return 0;
}
未记录的函数SetConsoleFont
有效,但GetCurrentConsoleFont
在编译时失败,说它未在此范围内声明。
- 编辑:更改为自我持续代码。
答案 0 :(得分:4)
GetCurrentConsoleFont至少在NT4 +上导出,MinGW标头必须是错误的。
尝试在#include's后添加此代码:
#ifdef __cplusplus
extern "C" {
#endif
BOOL WINAPI GetCurrentConsoleFont(HANDLE hConsoleOutput,BOOL bMaximumWindow,PCONSOLE_FONT_INFO lpConsoleCurrentFont);
#ifdef __cplusplus
}
#endif
你的代码也错了,应该是:
CONSOLE_FONT_INFO ConsoleFontInfo;
GetCurrentConsoleFont(GetStdHandle(STD_OUTPUT_HANDLE), false, &ConsoleFontInfo);
(每当你看到PSOMETYPE作为参数时,通常会在堆栈上分配一个SOMETYPE结构并将指针传递给该结构作为参数)
答案 1 :(得分:2)
BOOL WINAPI GetCurrentConsoleFont(HANDLE,BOOL,PCONSOLE_FONT_INFO);
COORD WINAPI GetConsoleFontSize(HANDLE,DWORD);
GetConsoleFontSize也不见了。