|  | 
 
| error C2664: “void Gdiplus::GdiplusShutdown(ULONG_PTR)”: 无法将参数 1 从“unsigned long *”转换为“ULONG_PTR” 错误 `C2664` 表示在调用 `GdiplusShutdown` 函数时,参数类型不匹配。具体来说,`GdiplusShutdown` 函数期望一个 `ULONG_PTR` 类型的参数,但你传递的参数是 `unsigned long*` 类型。
 
 ### 解决方案
 
 确保你传递给 `GdiplusShutdown` 的参数是 `ULONG_PTR` 类型,而不是指向 `unsigned long` 的指针。通常,你应该传递 `ULONG_PTR` 类型的变量,而不是指针。
 
 以下是一个示例,展示如何正确初始化和关闭 GDI+:
 
 #### 示例代码
 
 复制代码
```cpp
#include <windows.h>
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;
ULONG_PTR gdiplusToken;
void InitGDIPlus() {
    GdiplusStartupInput gdiplusStartupInput;
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
}
void ShutdownGDIPlus() {
    GdiplusShutdown(gdiplusToken); // 确保传递 ULONG_PTR,而不是指针
}
int main() {
    InitGDIPlus();
    // 你的代码...
    ShutdownGDIPlus();
    return 0;
}
```
 ### 关键点
 
 1. **正确的参数类型**:确保 `gdiplusToken` 是 `ULONG_PTR` 类型,并且在调用 `GdiplusShutdown` 时直接传递该变量,而不是其地址。
 
 2. **初始化和关闭**:在使用 GDI+ 之前,调用 `GdiplusStartup` 进行初始化,使用 `GdiplusShutdown` 进行清理。
 
 ### 总结
 
 通过确保传递给 `GdiplusShutdown` 的参数是正确类型的 `ULONG_PTR`,你应该能够解决这个编译错误。
 
 
 上述解决方案在VS2019中通过。
 
 | 
 |