FreeType在VC6下面的lib編譯

2021-05-22 02:22:54 字數 1131 閱讀 9324

近來學習了一下freetype庫,確實好用。不過遇到很多編譯上的問題,發現網路上遇到同樣問題的朋友很多,剛好把自己的這點小經驗寫一下,幫助一下剛開始學習freetype庫的同學。

freetype 是乙個非常好的庫,而且跨平台,並且能夠自定義元件的方式選擇性的編譯,所以就特別靈活。但是這靈活也是有代價的,那就是,編譯的時候要注意的事情就很多,才接觸的時候,往往很不習慣。

freetype的目錄下面,其實已經包含了很多直接可以編譯的工程檔案和make檔案,我很懶,直接用工程編譯。發現win32下面的vc 2005工程能夠很好的編譯出lib,但是vc 6的卻有問題。我用的是2.3.5。

其實,vc6的也是可以的,不過專案檔案裡面的資料的換行時unix/linux下面的換行,vc6這個老ide不支援,所以,必須你自己手動的改一下換行方式,自己用記事本或者utraledit編輯一下吧,好了,現在vc6的可以編譯了,但是警告一堆,這些警告是不可忽略的,因為這些問題也會使得編譯出來的lib不可使用。

這裡的警告是:warning c4273: '******x' : inconsistent dll linkage.  dllexport assumed. 意思是dll的鏈結不一致。這個警告的原因是錯誤的給函式加上了__declspec(dllimport)修飾,檢視標頭檔案後得知,你需要加上 use_freetype2_static 。然後,編譯正確。

還有乙個問題程式使用lib時候發生的,編譯器提示找不到符號,這些符號多數是 __imp__ 開頭,比如__imp__ft_init_freetype,一開始實在想不通為什麼明明是ft_init_freetype,為什麼會變成__imp__ft_init_freetype。這裡的解決辦法是要在使用lib的程式裡面加入巨集 use_freetype2_static,編譯器就會使用將freetype的函式當做靜態庫中的函式使用。

小結一下,在vc6下編譯freetype的靜態庫的要點

·將工程檔案內的換行該成windows下的換行方式,當然你也可以自己重新建立乙個vc6的工程,這裡要按照說明新增正確的標頭檔案和原始檔(不是所有檔案都要加入到工程的).

·編譯lib時候,以及使用lib,要使用 use_freetype2_static 巨集

這裡有很多名堂的,全部都集中在include/freetype/config目錄下面,有空再研究。

CGridCtrl 在vc6下的使用

最近在做乙個小型的進銷存。因為後期要顯示相關的報表資訊。在經過一系列的搜尋 終於選擇使用cgridctrl。為什麼選擇這個呢 乙個是功能的強大。再就是比較靈活。最重要的我選擇這個的原因是可以合併單元格。現在來說說如何使用cgridctrl 我是建立的dialog的程式。我先建立了乙個全域性變數 cg...

JSONCpp在windows下的VC6編譯和呼叫

其實很簡單,但是不知道的時候根本無從下手,後來看到別人分享的例子,才知道怎麼編譯的。2 解壓縮 3 開啟vc6,新建工程 win32 static library 4 將src裡面的源 全部複製到我們新建的工程目錄下。5 把include下面的json資料夾複製到新建的工程目錄下。6 將裡面的war...

winpcap網路程式設計在vc6下編譯出錯的原因

winpcap 4.1.1在vc6下編譯會出現以下錯誤,原因是vc6.0並不完美支援c 99標準,在64位cpu中編譯會有問題,將winpcap開發包換到4.0.1版本及以下錯誤消失 c wpdpack include pcap stdinc.h 79 error c2144 syntax erro...