Поделиться через


Функция GdiplusStartup (gdiplusinit.h)

Функция GdiplusStartup инициализирует Windows GDI+. Вызовите GdiplusStartup , прежде чем выполнять другие вызовы GDI+, и вызовите GdiplusShutdown после завершения использования GDI+.

Синтаксис

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

Параметры

token

Тип: [out] ULONG_PTR токен*

Указатель на ULONG_PTR , получающий маркер. Передайте маркер в GdiplusShutdown после завершения использования GDI+.

input

Тип: [in] const GdiplusStartupInput*

Указатель на структуру GdiplusStartupInput , содержащую версию GDI+, указатель на функцию обратного вызова отладки, логическое значение, указывающее, следует ли подавлять фоновый поток, и логическое значение, указывающее, следует ли подавлять внешние кодеки изображений.

output

Тип: [out] GdiplusStartupOutput*

Указатель на структуру GdiplusStartupOutput , которая получает указатель на функцию перехватчика уведомлений и указатель на функцию отмены перехватчика уведомлений. Если элемент данных SuppressBackgroundThreadвходного параметра имеет значение FALSE, этот параметр может иметь значение NULL.

Возвращаемое значение

Тип: Состояние

Если функция выполняется успешно, возвращается ОК, которая является элементом перечисления Status .

Если функция завершается сбоем, она возвращает один из других элементов перечисления Status .

Комментарии

Необходимо вызвать GdiplusStartup перед созданием объектов GDI+, а также удалить все объекты GDI+ (или вывести их из область) перед вызовом GdiplusShutdown.

Вы можете вызвать GdiplusStartup в одном потоке и GdiplusShutdown в другом потоке, если удалить все объекты GDI+ (или удалить их из область) перед вызовом GdiplusShutdown.

Не вызывайте GdiplusStartup или GdiplusShutdown в DllMain или в любой функции, вызываемой DllMain. Если вы хотите создать библиотеку DLL, которая использует GDI+, инициализировать GDI+, следует использовать один из следующих методов:

  • Требовать от клиентов вызова GdiplusStartup перед вызовом функций в библиотеке DLL и вызова GdiplusShutdown после завершения работы с библиотекой DLL.
  • Экспортируйте собственную функцию запуска, которая вызывает GdiplusStartup , и собственную функцию завершения работы, которая вызывает GdiplusShutdown. Требовать, чтобы клиенты вызывали функцию запуска перед вызовом других функций в библиотеке DLL и вызывали функцию завершения работы после завершения работы с библиотекой DLL.
  • Вызовите GdiplusStartup и GdiplusShutdown в каждой из функций, которые выполняют вызовы GDI+.
Предупреждение Сведения об использовании динамического обмена данными (DDE) с GDI+, см. в разделе Special CWinApp Services.
 

Примеры

Пример вызова GdiplusStartup и GdiplusShutdown в приложении Windows см. в разделе начало работы.

Следующее консольное приложение использует объект GDI+Image для получения ширины и высоты изображения JPEG. Код вызывает GdiplusStartup перед созданием объекта Image и GdiplusShutdown перед завершением. Обратите внимание, что объект Image удаляется перед вызовом GdiplusShutdown.

В следующем коде переменная gdiplusStartupInput инициализируется конструктором по умолчанию структуры GdiplusStartupInput . Конструктор по умолчанию присваивает членам данных структуры следующие значения:

  • GdiplusVersion = 1
  • DebugEventCallback = NULL
  • 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
Header gdiplusinit.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

GdiplusShutdown

GdiplusStartupInput

GdiplusStartupOutput

Начало работы