如何链接TextOut()函数的库?

时间:2013-10-31 11:49:56

标签: c++ winapi codeblocks

我需要使用一些GDI32函数,但我需要添加库1。我尝试将其与链接器选项链接,但文本未显示。 那么如何通过代码添加库? 注意:#pragma注释(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();
}

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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

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