小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VC6.0下的GDI+配置

 冉亮 2010-08-04

GDI Plus 描述:

    GDIPlus是微軟出的一個C++面向?qū)ο髱?,它為windows的圖形設(shè)備接口提供了更好的訪問。與標(biāo)準(zhǔn)的windows GDI相比,二維繪圖和圖片使用得到很大改進。使用GDIPlus你可以繪制定制的對象,打開各種圖片并以各種格式存儲它們,使用多種字體和文本繪制軌跡 和各種調(diào)色板功能。

GDI Plus兼容性:

    GDIPlus最初是為MS Visual Studio 7開發(fā)的,但是因為這個產(chǎn)品的發(fā)布推遲了,所以微軟就為Visual Studio 6發(fā)行了這個庫的版本。如果你使用Visual Studio 6,可以從這里下載MFC GDI Plus庫文件。http://www./samples/mfcgdiplus.zip

a)Visual Studio 7或者更新版本使用這個類庫,只需要在你的工程里面包含<gdiplus.h>

b)早期版本的MSVS要使用這個類庫,需要將下載的zip文件解壓到一個文件夾,設(shè)其路徑為your_path,然后將目錄your_path\ gdiplus\includes加入到開發(fā)環(huán)境的包含路徑中(Tools->Options->Directories-> Include files),然后在你的工程中你必須包含文件<gdiplus>,但是在那之前你必須定義define ULONG_PTR(這是GDIPlus中的一個定義,在老版本的VS中沒有定義過)。也就是說,在StdAfx.h中你需要添加如下代碼:

#define ULONG_PTR ULONG
#include <gdiplus.h>

然后將目錄your_path\gdiplus\lib包含到你的工程(Tools->Options->Directories->Library files),以使它們可以鏈接到你的程序。

【efivol補充:還必須在StdAfx.h中#include <gdiplus.h>之后加入這兩句,不然有錯。

using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")

補充完畢】

在編譯完你的工程之后,將your_path\gdiplus\gdiplus.dll拷貝到生成的執(zhí)行文件所在的文件夾(\Debug或者\Release)

 

使用GDI Plus類庫:

要使用GDI Plus類庫,你必須首先初始化類庫。初始化是一個調(diào)用兩個參數(shù)的函數(shù),這兩個參數(shù)是必須在整個GDIPlus會話中都存在的變量。在使用完GDIPlus之后,必須調(diào)用一個函數(shù)來關(guān)閉會話。

如果你使用MFC,一個好的方法是在你的CWinApp派生的類中(比如CYourProjectApp)添加變量:

private:
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;

然后在app的InitInstance函數(shù)中的開始添加一行代碼:

GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL); //gdi+ init

然后重載ExitInstance函數(shù)(如果沒有的話),在其中添加一行代碼:

GdiplusShutdown(m_pGdiToken); //gdi+ end session

這些操作之后你就可以在你的程序中使用類庫的功能了。

可以使用了么?不可以。我們新建一個單文檔的工程,按上面的步驟做完,然后在View類的OnDraw()函數(shù)里添加如下代碼:

Graphics graphics(pDC->m_hDC);
Pen pen(Color(255, 0, 255));
graphics.DrawLine(&pen, 0, 0, 200, 100);

編譯,出錯。就這樣還是被很多人轉(zhuǎn)載,可惡吧。

錯誤提示為:
f:\includes\gdiplusenums.h(29) : error C2146: syntax error : missing ';' before identifier 'GraphicsState'
f:\includes\gdiplusenums.h(29) : fatal error C1004: unexpected end of file found

這個錯誤在網(wǎng)上百度一下有很多,問的人多,回答的人也多,但就是幾乎沒有人答對。解決方法是

在#include <gdiplus.h>之前加上#include <afxdtctl.h>

好了,一條線畫出來了。為什么啊,這就不知道了,據(jù)說這個文件的作用是為IE4公共控件提供MFC支持。

柳暗花明之后,才發(fā)現(xiàn)這里有篇文章 Hints to get GDI+ running,是一個人寫的建議。

里面說,要防止編譯錯誤和問題,需要在#include <gdiplus.h>之前加上#include <afxwin.h>、<afxext.h>、<afxdisp.h>和<afxdtctl.h>。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多