0

我需要使用一些 GDI32 函数,但我需要添加第一个库。我尝试将其与链接器选项链接,但未显示文本。那么如何通过代码添加库呢?注意:#pragma comment(lib, "gid32.lib") 不可移植,这就是我不能使用它的原因:(

#include <iostream>
#include <string.h>
#include <windows.h>
//#include <WinGdi.h>


using namespace std;

int main()
{
    //TextBlink("hello world", 10,20,3,5);
    HDC hDC=GetDC(GetConsoleWindow());
    SetTextColor(hDC,6);
    TextOut(hDC,1,5,"hello world",strlen("hello world"));
    cin.get();
}
4

2 回答 2

1

您不能在控制台中使用 TextOut,您必须创建一个 Window 获取窗口的句柄并使用该窗口的设备上下文。

另一个问题是为什么在使用非便携功能时要担心便携性?TextOut 依赖于微软...

于 2013-10-31T12:06:55.063 回答
0

在“链接器设置”选项卡下的“项目构建选项”中,确保kernel32,gdi32user32库位于“链接库”列表中。

如果缺少某些内容,您甚至无法获得可执行文件(链接器将失败!)。

无论如何,您所做的并不奇怪:控制台是由操作系统在内部绘制的。在它之上绘图不是持久的,并且每次操作系统更新控制台屏幕时都会被覆盖。可能在getch()每次写作期间或之后。

如果您想自己绘制文本或使用任何间隙函数,您最好自己创建一个窗口并通过其自己的 WM_PAINT 事件在其上进行绘制。换句话说,您需要一个可以控制自己的窗口。

于 2013-10-31T12:18:50.870 回答