GCCfor Win32 開發環境介紹 6

2021-04-13 22:44:36 字數 4472 閱讀 5409

上文回顧:

gccfor win32開發環境介紹(6)

第四章跨平台圖象顯示庫——sdl

第二節函式庫的詳細介紹——基本函式

在上一節中,我們已經了解了sdl的安裝和基本的使用方法。還給出了編譯使用sdl程式的源**。接下來,我將帶領各位深入sdl其中,逐一介紹sdl的各個函式。首先我們先從基本函式說起。

當你需要在你的程式中使用sdl的時候。你首先要做的事情,就是在你的程式中初始化sdl。這個工作,你可以交由sdl_init函式來做。sdl_init函式可以初始化任何sdl所支援的子系統,其中包括圖象,聲音,搖桿,時鐘等子系統。當然,在你使用sdl_init函式初始化以後,你可以使用sdl_initsubsystem和sdl_quitsubsystem函式來載入和解除安裝子系統的。當然啦,你的程式退出前,你必須解除安裝所有的子系統以釋放系統資源。通過呼叫< /font>sdl_quit,可以輕鬆的解除安裝掉你所載入的子系統並釋放這些子系統的系統資源。

sdl_init

函式摘要

#include「sdl.h」

intsdl_init(uint32 flags);

函式介紹

這個函式是用於初始化sdl的,你必須在呼叫其他的sdl函式之前呼叫該函式。其中flags的引數和意義如下。當你需要初始化多個子系統的時候,可以用把這些引數或起來。

sdl_init_timer始化 計時器子系統

sdl_init_audio始化 音訊子系統

sdl_init_cdrom始化 光碟機子系統

sdl_init_joystick始化 搖桿子系統

sdl_init_everything初始化以上全部的子系統

返回值說明

返回-1表示錯誤,返回0表示初始化成功。

sdl_initsubsystem

函式摘要

#include「sdl.h」

intsdl_initsubsystem(uint32 flags);

函式介紹

在你通過 sdl_init為sdl初始化以後,你可以通過sdl_initsubsystem函式來初始化那些沒有被初始化的子系統。其中flags的引數定義和 sdl_init的一樣。

返回值說明

返回-1表示錯誤,返回0表示初始化成功。

sdl_quitsubsytem

函式摘要

#include「sdl.h」

voidsdl_quitsubsystem(uint32 flags);

函式介紹

sdl_quitsubsystem函式可以解除安裝你曾經通過 sdl_init或者 sdl_initsubsytem函式載入的子系統,其中引數 flasgs的定義和 sdl_init中的定義一樣。

sdl_quit

函式摘要

#include「sdl.h」

voidsdl_quit(void);

函式介紹

sdl_quit函式可以解除安裝所有你所載入的子系統,並且釋放這些子系統所占用的資源。這個函式一般是在程式退出以前呼叫的。< /font>

sdl_wasinit

函式摘要

#include「sdl.h」

uint32sdl_wasinit(uint32 flags);

函式介紹

sdl_wasinit函式,允許你檢視你所載入的子系統有哪些。其中flags的內容為你所要檢查的子系統。

返回值說明

函式返回一組你所要檢查的子系統載入情況的說明。是幾個bit字的或。你可以用與操作來逐一檢查你所要檢查的子系統是否被載入。

下面給出一組關於以上函式的demo**,以及他的makefile。

sdl_general_demo.cc**

//nerve development team

//sdl_general_demo.c

#include

#include

#include

#define note(msg) printf("note: %s/n",msg)

int main(int argc,char *argv)else

sdl_quitsubsystem(sdl_init_video);

note("unload video subsystem");

if(sdl_wasinit(sdl_init_video))else

sdl_quit();

note("unload any subsystem of sdl");

return(0);

} 編譯sdl_general_demo.cmakefile檔案。

#makefile

cc=gcc

sdl_include="d:/sdl/include"

sdl_lib="d:/sdl/lib"

all:sdl_general_demo.o

$(cc) -l$(sdl_lib) -o demo sdl_general_demo.o -lmingw32 -lsdlmain -lsdl

sdl_general_demo.o:sdl_general_demo.c

$(cc) -i$(sdl_include) -c sdl_general_demo.c -o sdl_general_demo.o

按照以上兩個檔案的編譯,我們可以得到乙個名為demo的可執行程式。當你執行 demo以後。你將在demo所在的資料夾內找到乙個名為stdout.txt的檔案。他是對 標準輸入輸出的重定向檔案,你使用printf列印到終端的內容全部儲存在這個檔案內。下面是我的stdout.txt的內容

note: load video subsystem

note: load audio subsystem

note: audio subsystem was loaded

note: unload video subsystem

note: video subsystem is unloaded

note: unload any subsystem of sdl

文外音:

感覺現在的文章更新間隔是越來越長了,不過還是感謝各位對我的支援。我相信,我以後的文章更新會慢慢的加快節奏的。也同時感謝各位讀者的支援和理解。呵呵,感覺乙個學期又結束了,雖然在學期的結尾的時候和某個人發生了些不快。但是,我想我還是大度一點不和他計較了。同時我也覺得,人生中有很多事情是強求不來的,我們的一切都是早已在我們誕生以先就已經定下了,不論是我們在世上的疆界還是我們的財富。在上一階段的時間裡,我曾經充滿希望,也曾經絕望過,但是不論何時我都覺得有種無形的力量在我絕望的時候扶助我,讓我不至全然的撲到在地。如今,我真正覺得我曾經的絕望是如此可笑無知,因他讓我見著希望~。所以,不論我們當前的處境如何絕望,只要抱著信心走在正直的道路上,我相信我們一定能看到曙光的。

如果你在閱讀本文以後有任何的疑問,你可以到http://nirvana.cublog.cn或者 http://blog.csdn.net/visioncat上提出問題。最後感謝各位對我長久以來的支援。

nerve軟體開發組(ndt)

nervedevelopment team

北斗星君(黃庠魁)

索引:

gcc,windows,sdl,函式,基本

本文**

LinkGUI Air E32 搭建開發環境

編譯是在ubuntu系統裡進行的,需要先安裝ubuntu作業系統,可以整機安裝,也可以選擇用vmware虛擬器進行安裝。本文例子所選用vmware workstation的版本為15,ubuntu系統的版本為ubuntu 18.04 desktop amd64.iso 2 安裝samba及ssh 進...

ESP32 Linux開發環境搭建

交叉編譯鏈 linux 32位系統 linux 64位系統 在ubuntu 與windows 的共享資料夾 下 如何建立ubuntu與 windows 的共享資料夾,請看上一節內容 這樣既能在 ubuntu 操作,也能在 windows 操作,因為我的 編譯是在 linux bin檔案燒寫在 win...

esp32 cam開發環境搭建

esp32 cam模組是安信可推出的乙個很小的 wifi 攝像頭 模組 開發方式可以選擇arduinoide開發的方式也可以使用官方sdk idf開發的方式,下面是使用虛擬機器 ubuntu idf的開發環境搭建 金鑰 5a02h au243 tzj49 gtc7k 3c61n 虛擬機器軟體 完成後...