"undefined reference to `CreateStreamOnHGlobal@12'" 执行 gdiplus C++ 代码时遇到错误

"undefined reference to `CreateStreamOnHGlobal@12'" error faced on executing gdiplus c++ code

我发现 a code on github 可以截图并将其保存为 jpeg 文件。我用notepad++复制粘贴,保存,用下面的命令编译:

g++ -mwindows screenshot.cpp -lgdiplus

并遇到以下错误:

C:\Users\USER\AppData\Local\Temp\ccTLI53G.o:screenshot.cpp:(.text+0x158): undefined reference to `CreateStreamOnHGlobal@12'
collect2.exe: error: ld returned 1 exit status

似乎是这一行导致了问题:

#include <stdio.h>
#include <windows.h>
#include <gdiplus.h>
#include <time.h>
//stuff....
HRESULT res = CreateStreamOnHGlobal(NULL, true, &istream);// this line (line 38)
//stuff....

任何关于为什么代码不起作用的帮助将不胜感激...

根据这个网站:

CreateStreamOnHGlobal function (combaseapi.h) - Win32 apps | Microsoft Docs

包含CreateStreamOnHGlobal函数的库是Ole32.lib,所以-lole32应该添加到命令行。