首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

VC6.0 專案整合 GDI+ 完整步驟:從 SDK 安裝到初始化關閉

     編輯:VC 教學

前言

VC6.0 預設不支援 GDI+,需手動部署 Windows SDK 提供的標頭檔與匯入庫。本文整理最精簡的整合流程,包含檔案部署、專案設定、啟動/關閉程式碼,讓舊專案也能使用 GDI+ 豐富的圖形功能。

1. 取得並部署 GDI+ SDK 檔案

  1. 下載 GDI+ for VC6.0 SDK(或從 Windows SDK 安裝目錄複製)。
  2. 解壓縮後,將 Include 資料夾下的 GdiPlus.h、GdiPlusFlat.h、GdiPlusGpStubs.h 等複製到 VC6 安裝目錄 VC98\Include。
  3. 將 Lib 資料夾下的 gdiplus.lib 複製到 VC98\Lib。

2. 專案標頭檔設定

在 StdAfx.h 最前端加入:

#include <comdef.h>  // 初始化 COM

#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif
#include "GdiPlus.h"
using namespace Gdiplus;

3. 應用程式類別宣告啟動變數

於 CWinApp 衍生類別(如 CMyApp)中宣告:

private:
    GdiplusStartupInput m_gdiplusStartupInput;
    ULONG_PTR m_gdiplusToken;

4. 初始化與關閉

BOOL CMyApp::InitInstance()
{
    // ... 原有初始化 ...

    // 啟動 GDI+
    GdiplusStartup(&m_gdiplusToken, &m_gdiplusStartupInput, NULL);

    return TRUE;
}

int CMyApp::ExitInstance()
{
    // 關閉 GDI+
    GdiplusShutdown(m_gdiplusToken);
    return CWinApp::ExitInstance();
}

5. 連結器設定

  1. 開啟 Project → Settings → Link 分頁。
  2. 在 Object/library modules 輸入 gdiplus.lib。
  3. 確認 Additional library path 包含 VC98\Lib。

6. 驗證測試

void CMyView::OnDraw(CDC* pDC)
{
    Graphics g(pDC->m_hDC);
    SolidBrush brush(Color(255, 255, 0, 0));
    g.FillRectangle(&brush, 10, 10, 100, 50);
    FontFamily ff(L"Arial");
    Font font(&ff, 24, FontStyleBold, UnitPixel);
    g.DrawString(L"GDI+ Works!", -1, &font, PointF(10, 70), &brush);
}

常見問題排除

  • 編譯錯誤 ULONG_PTR 未定義:確保 #define ULONG_PTR unsigned long* 在 #include "GdiPlus.h" 之前。
  • 連結錯誤 GdiplusStartup 未解析:檢查 gdiplus.lib 是否確實加入連結器模組清單。
  • 執行期錯誤 GdiplusStartup 回傳 InvalidParameter:確認 GdiplusStartupInput 結構未被竄改,且未重複呼叫啟動。
  • DLL 遺失:目標機器需安裝 GDI+ 可轉散發套件(Windows XP 內建,Win2000 需另裝)。

補充:使用 #pragma comment 簡化設定

#pragma comment(lib, "gdiplus.lib")  // 直接在 StdAfx.h 指定連結庫

即可省去手動設定 Project Settings 步驟。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved