在vc 6 0中配置OpenGL環境

2021-06-26 05:27:08 字數 4770 閱讀 5991

opengl入門學習

——寫給想用計算機畫圖的朋友

opengl作為當前主流的圖形api之一,它在一些場合具有比directx更優越的特性。

1、與c語言緊密結合。

opengl命令最初就是用c語言函式來進行描述的,對於學習過c語言的人來講,opengl是容易理解和學習的。如果你曾經接觸過tc的graphics.h,你會發現,使用opengl作圖甚至比tc更加簡單。

2、強大的可移植性。

微軟的direct3d雖然也是十分優秀的圖形api,但它只用於windows系統。而opengl不僅用於windows,還可以用於unix/linux等其它系統,它甚至在大型計算機、各種專業計算機(如:醫療用顯示裝置)上都有應用。並且,opengl的基本命令都做到了硬體無關,甚至是平台無關。

3、高效能的圖形渲染。

opengl是乙個工業標準,它的技術緊跟時代,現今各個顯示卡廠家無一不對opengl提供強力支援,激烈的競爭中使得opengl效能一直領先。

opengl官方**(英文)

下面將對windows下的opengl程式設計進行簡單介紹。 

學習opengl

前的準備工作

第一步,選擇乙個編譯環境

現在windows系統的主流編譯環境有visual studio,broland c++ builder,dev-c++等,它們都是支援opengl的。這裡我們選擇vc++6.0作為學習opengl的環境。 

第二步,安裝glut工具包

/resources/libraries/glut/glut_downloads.php/glutdlls37beta.zip

windows環境下安裝glut的步驟:

2、把解壓得到的glut.h複製到vc的「include\gl」資料夾下。

3、把解壓得到的glut.lib和glut32.lib複製到靜態函式庫所在資料夾 「vc\lib」資料夾。

4、把解壓得到的glut.dll和glut32.dll複製到作業系統目錄下面的system32資料夾內。(典型的位置為:c:\windows\system32)

第三步,建立乙個opengl工程

1、啟動vc++6.0程式

3、然後向該工程新增乙個**檔案,擴充套件名為.c(注意用.c來作為檔案結尾。)

新增**檔案的方法:

方法一:新增已經存在的.c檔案。在fileview 管理器中,選擇source files資料夾---右擊---add files to folder…。或者從「工程」選單---「增加到工程」---「檔案」。

方法二:新增不存在的.c檔案。從「檔案」選單---「新建」---選擇「檔案」選項卡---c++ source file,將右邊的「新增到工程」打勾,在「檔名」處輸入擴充套件名為.c的檔名(記住一定輸入副檔名 .c  !!!)---「確定」,然後在.c檔案中輸入**。

第四步,編譯連線。在選單「build」中選擇compile或build。

第五步,執行程式。在選單「build」中選擇execute執行。

(說明:以上建立的是乙個win32控制台程式

,包含乙個控制視窗和opengl視窗。如果只需要乙個opengl視窗的應用程式,則將上面的第三步中的2小步改為: 2、

選擇file->new->project,然後選擇

,選擇乙個工程名

稱並設定好工程所在位置,

然後按ok。在

彈出的對話方塊

右邊點empty project,選擇finish。

同時,在第四步編譯連線前,要先進行編譯和連線選項的設定:

選擇 project -> settings ->選擇 link 選項卡: 

從 category(分類)中選擇 output(輸出),在 entry-point synmbol(入口點)文字框中鍵入 maincrtstartup ;

從 category(分類)中選擇 「常規」,在object/library modules(物件/庫模式)一欄中新增: opengl32.lib glu32.lib glut32.lib這三個opengl的鏈結庫。)

(說明: 對於已存在的控制台工程, 有乙個簡單的辦法將它轉換成win32應用程式: 

根據上面的步驟修改入口點 

在 project options 文字框中用 subsystem:windows 覆蓋 subsystem:console

或者你可以直接在你的源**開頭處新增一行**:

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"maincrtstartup\"" ) 

如此一來,應用程式就不會出現控制台視窗,而只是乙個opengl視窗了。)

第乙個opengl

程式乙個簡單的opengl程式如下:(注意,如果需要編譯並執行,需要正確安裝glut,安裝方法如上所述)

//  opengl.c  

#include 

void mydisplay(void)

int main(int argc, char *argv)

該程式的作用是在乙個黑色的視窗**畫乙個白色的矩形。下面對各行語句進行說明。 

怎麼樣?**還不算長吧?

首先,需要包含標頭檔案#include,這是glut的標頭檔案。

本來opengl程式一般還要包含和,但glut的標頭檔案中已經自動將這兩個檔案包含了,不必再次包含。

然後看main函式。

int main(int argc, char *argv),這個是帶命令列引數的main函式,各位應該見過吧?沒見過的同志們請多翻翻書,等弄明白了再往下看。

注意main函式中的各語句,除了最後的return之外,其餘全部以glut開頭。這種以glut開頭的函式都是glut工具包所提供的函式,下面對用到的幾個函式進行介紹。

1、glutinit,對glut進行初始化,這個函式必須在其它的glut使用之前呼叫一次。其格式比較死板,一般照抄這句glutinit(&argc, argv)就可以了。

2、glutinitdisplaymode,設定顯示方式,其中glut_rgb表示使用rgb顏色,與之對應的還有glut_index(表示使用索引顏色)。glut_single表示使用單緩衝,與之對應的還有glut_double(使用雙緩衝)。更多資訊,請自己google。當然以後的教程也會有一些講解。

3、glutinitwindowposition,這個簡單,設定視窗在螢幕中的位置。

4、glutinitwindowsize,這個也簡單,設定視窗的大小。

5、glutcreatewindow,根據前面設定的資訊建立視窗。引數將被作為視窗的標題。注意:視窗被建立後,並不立即顯示到螢幕上。需要呼叫glutmainloop才能看到視窗。

6、glutdisplayfunc,設定乙個函式,當需要進行畫圖時,這個函式就會被呼叫。(這個說法不夠準確,但準確的說法可能初學者不太好理解,暫時這樣說吧)。

7、glutmainloop,進行乙個訊息迴圈。(這個可能初學者也不太明白,現在只需要知道這個函式可以顯示視窗,並且等待視窗關閉後才會返回,這就足夠了。)

在glutdisplayfunc函式中,我們設定了「當需要畫圖時,請呼叫mydisplay函式」。於是mydisplay函式就用來畫圖。觀察mydisplay中的三個函式呼叫,發現它們都以gl開頭。這種以gl開頭的函式都是opengl的標準函式,下面對用到的函式進行介紹。

1、glclear,清除。gl_color_buffer_bit表示清除顏色,glclear函式還可以清除其它的東西,但這裡不作介紹。

2、glrectf,畫乙個矩形。四個引數分別表示了位於對角線上的兩個點的橫、縱座標。

3、glflush,保證前面的opengl命令立即執行(而不是讓它們在緩衝區中等待)。其作用跟fflush(stdout)類似。 

/resources/libraries/glut/glutdlls37beta.zip

4、把glut.lib和glut32.lib放到/program files/microsoft visual studio 6.0/vc98/lib」資料夾中。 

5、把glut.dll和glut32.dll放到作業系統目錄下面的system32資料夾中。(一般為:c:/windows/system32)

6、開啟vc++6.0,新建立乙個工程。

7、在visual c++中單擊選單project->settings...,單擊link標籤,在object/library modules 的最前面加上opengl32.lib glu32.lib glut32.lib glaux.lib gdi32.lib user32.lib   

advapi32.lib .

8、在你的程式中包含如下標頭檔案:

//#include

//#include

//#include

#include

這裡需要特別注意的是:如果包含了glut.h,則其他三個標頭檔案就一定不要包含,否則就會出現如下莫名其妙的錯誤:

d:\program files\visual studio 6.0\vc98\include\gl\gl.h(1152) : error c2144: syntax error : missing ';' before type 'void'

d:\program files\visual studio 6.0\vc98\include\gl\gl.h(1152) : error c2501: 'wingdiapi' : missing storage-class or type specifiers

d:\program files\visual studio 6.0\vc98\include\gl\gl.h(1152) : fatal error c1004: unexpected end of file found

VC 6 0下OpenGL開發環境配置

opengl官方 英文 下面我將對windows下的opengl程式設計進行簡單介紹。第一步 選擇乙個編譯環境 現在windows系統的主流編譯環境有visual studio,broland c builder,dev c 等,它們都是支援opengl的。但這裡我們選擇vc 6.0作為學習open...

在VC6 0中的除錯

3.設定資料斷點,和上面不同也就是表示式,換成了乙個全域性變數,並且在斷點對話方塊中,選中data選項卡,然後輸入全域性變數名,那麼當這個全域性變數的值發生給變時,程式就會中斷。4.設定訊息斷點 就是指斷點與訊息及相應的訊息處理函式 當某個訊息處理函式處理了乙個斷點訊息,程式將在訊息處理函式處中斷。...

Miracl在VC 6 0中的配置和使用

一 miracl庫 是大數運算函式庫,用來設計與大數運算相關的密碼學之應用,包含 rsa 公開密碼學 diffie hellman金鑰交換 key exchange aes dsa數字簽名,還包含 較新的橢圓曲線密碼學 elliptic curvecryptography 等等。運算速度快,並提供源...