C ++ GUI教程:对TextOut的未定义引用我有相同的问题,但是我对编程和Code :: Blocks还是陌生的,我想使用GDI32库。如何安装?我很困惑,因为我可以使用windows.h标头,但是TextOut之类的某些功能不可用。

#1 楼

gdi32库已经安装在您的计算机上,没有它,几乎没有程序会运行。您的编译器(如果安装正确)通常会带有导入库,链接程序使用该库在程序和系统中的文件之间进行绑定。 (在极少数情况下,您的编译器没有提供系统库的导入库,则需要下载Microsoft Windows Platform SDK。)

要与gdi32链接:



这将与MinGW-gcc可靠地用于所有系统库(如果您也使用任何其他编译器,它也应该工作,但是我不能谈论我没有尝试过的事情)。您也可以写库的全名,但是写libgdi32.agdi32没什么好处,除了打字工作更多。
如果由于某种原因它不起作用,则可能必须提供一个不同的名称(例如库对于MSVC,其名称为gdi32.lib

对于某些奇特位置或项目子文件夹中的库,您需要提供正确的路径名(单击“ ...”按钮以选择文件)。

评论


顺便说一句,OP应该更改整个项目而不是单个目标的链接器设置。这可以通过在“项目构建选项”窗口(屏幕快照中的“我的项目”)中单击项目名称来完成。

–HolyBlackCat
15年1月25日在19:36

嗨,我在链接SDL和SDL_image时遇到问题,谢谢您,这个例子对我有很大帮助。.btw在某些例子中,我看到了像“ -lSDL”和“ -lSDL_image”这样的链接它的说法,但是可以命令行。 CodeBlocks为您添加了“ -l”,因此仅添加了库名,就像GDI32一样。他们应该解释这一点,因为周围有很多问题,并且会感到困惑。 (我是一个)谢谢

–HoNgOuRu
2015年3月23日在16:37



谢谢,达蒙使用此解决方案,我在项目中链接了gdi32库。我的开发操作系统是window7,IDE是代码块。它解决了我的以下错误:“对getstockobject 4 @的未定义引用”

–潘卡吉(Pankaj Vavadiya)
16-4-14在6:06



#2 楼

猜测中,您使用了Code :: Blocks创建了一个Console Application项目。这样的项目不会链接到GDI内容中,因为控制台应用程序通常不打算做图形,并且TextOut是图形功能。如果要使用GDI的功能,则应创建一个Win32 Gui Project,该项目将设置为在GDI中链接。

评论


我不相信这是真的。即时通讯使用opengl(win32窗口创建)与控制台应用程序,它仍然可以工作。

–我幻想我
2011年6月19日上午10:10