GdiplusStartup 函数 (gdiplusinit.h)

GdiplusStartup 函数初始化 Windows GDI+。 在进行任何其他 GDI+ 调用之前调用 GdiplusStartup ,并在使用 完 GDI+ 后调用 GdiplusShutdown

语法

Status GdiplusStartup(
  ULONG_PTR                 *token,
  const GdiplusStartupInput *input,
  GdiplusStartupOutput      *output
);

parameters

token

类型:[out] ULONG_PTR token*

指向接收令牌 的ULONG_PTR 的指针。 使用完 GDI+ 后,将令牌传递给 GdiplusShutdown

input

类型:[in] const GdiplusStartupInput*

指向包含 GDI+ 版本的 GdiplusStartupInput 结构的指针、指向调试回调函数的指针、指定是否禁止显示后台线程的布尔值,以及一个指定是否禁止显示外部图像编解码器的布尔值。

output

类型:[out] GdiplusStartupOutput*

指向 GdiplusStartupOutput 结构的指针,该结构接收一个指向通知挂钩函数的指针和一个指向通知取消挂钩函数的指针。 如果输入参数的 SuppressBackgroundThread 数据成员为 FALSE,则此参数可以为 NULL

返回值

类型: 状态

如果该函数成功,则返回 Ok,这是 Status 枚举的元素。

如果该函数失败,它将返回 Status 枚举的其他元素之一。

注解

在创建任何 GDI+ 对象之前,必须调用 GdiplusStartup ,并且必须在调用 GdiplusShutdown 之前删除所有 GDI+ 对象 (或使其超出范围) 。

可以在一个线程上调用 GdiplusStartup,并在另一个线程上调用 GdiplusShutdown,只要在 (调用 GdiplusShutdown 之前删除所有 GDI+ 对象或让它们超出范围) 即可。

请勿在 DllMain 或 DllMain 调用的任何函数中调用 GdiplusStartupGdiplusShutdown。 如果要创建使用 GDI+ 的 DLL,则应使用以下方法之一来初始化 GDI+:

  • 要求客户端在调用 DLL 中的函数之前调用 GdiplusStartup ,并在使用完 DLL 后调用 GdiplusShutdown
  • 导出调用 GdiplusStartup 的你自己的启动函数和调用 GdiplusShutdown 的自己的关闭函数。 要求客户端在调用 DLL 中的其他函数之前调用启动函数,并在使用完 DLL 后调用关闭函数。
  • 在发出 GDI + 调用的每个函数中调用 GdiplusStartup 和 GdiplusShutdown
警告 有关如何将动态数据交换 (DDE) 与 GDI+ 配合使用的信息,请参阅 特殊 CWinApp 服务
 

示例

有关在 Windows 应用程序中调用 GdiplusStartupGdiplusShutdown 的示例,请参阅 入门

以下控制台应用程序使用 GDI+Image 对象检索 JPEG 图像的宽度和高度。 代码在创建 Image 对象之前调用 GdiplusStartup,并在终止前调用 GdiplusShutdown。 请注意,在调用 GdiplusShutdown 之前,将删除 Image 对象。

在以下代码中,变量 gdiplusStartupInputGdiplusStartupInput 结构的默认构造函数初始化。 默认构造函数将 结构的数据成员设置为以下值:

  • GdiplusVersion = 1
  • DebugEventCallback =
  • SuppressBackgroundThread =
  • SuppressExternalCodecs =
#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;

INT main()
{
   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR gdiplusToken;
   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

   Image* image = new Image(L"FakePhoto.jpg");
   printf("The width of the image is %u.\n", image->GetWidth());
   printf("The height of the image is %u.\n", image->GetHeight()); 

   delete image;
   GdiplusShutdown(gdiplusToken);
   return 0;
}

要求

   
最低受支持的客户端 Windows XP、Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 gdiplusinit.h (包括 Gdiplus.h)
Library Gdiplus.lib
DLL Gdiplus.dll

另请参阅

GdiplusShutdown

GdiplusStartupInput

GdiplusStartupOutput

入门