青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

關(guān)于OpenGl編程指南 第6版 第142頁 示例程序6-1 的運(yùn)行問題

        這個程序就編譯問題就花了我一個晚上的時間,很是郁悶,由于用的是 Visual Studio 2008,并且因?yàn)槲④泴penGL的支持只到1.1,1.1以后微軟就不再支持了,為什么,因?yàn)槲④浉氚l(fā)展自家的DirectX。所以如果想使用OpenGL1.1以上的功能或者函數(shù),只能使用OpenGL擴(kuò)展,這些擴(kuò)展是一些OpenGL團(tuán)體或個人開發(fā)出來的能Windows上使用的OpenGL1.1以后的一些功能及函數(shù)。所以,在Windows上根本就沒有什么OpenGL2.0的頭文件或庫文件了,OpenGL1.1以后的東西都已經(jīng)以擴(kuò)展的形式存在了,而且,并沒有一個統(tǒng)一的標(biāo)準(zhǔn)。
        網(wǎng)上關(guān)于這個解決的方法已經(jīng)有很多,其中一個是用glew庫,glew也是一個擴(kuò)展庫,包含了OpenGL中許多核心及擴(kuò)展函數(shù),可以到這里下載:   http://glew.sourceforge.net/                            
       先安裝,再按下面順序包含頭文件(glew.h在glut.h前)
#include <GL/glew.h>
#include <GL/glut.h>
      其中安裝了glew庫方法如下:
bin/glew32.dll     to     %SystemRoot%/system32
lib/glew32.lib     to     {VC Root}/Lib
include/GL/glew.h     to     {VC Root}/Include/GL
include/GL/wglew.h     to     {VC Root}/Include/GL


      

 GLenum err = glewInit() ;     
 
if (GLEW_OK != err)
 
{
     exit(
-2);
 }


上述都是簡單的問題,一直執(zhí)行到這里的時候程序編譯是通過了,但是發(fā)現(xiàn)出現(xiàn)另外一個問題,那就是,當(dāng)按下,a,s,r,m,x等鍵的時候完全沒有反應(yīng),于是我有查了一下,最后發(fā)現(xiàn)是由于沒有初始化glew的緣故,網(wǎng)上提供的通用方法是在init()函數(shù)調(diào)用之前先寫上如上幾行代碼:

然后偶很郁悶的發(fā)現(xiàn),編譯出現(xiàn)錯誤,這個地方也就是最神奇的地方,我試了很多次,都是提示錯誤,提示GLenum 標(biāo)示符聲明不合法什么的,嘗試了一個晚上后終于放棄,過了幾天,重新回來看的時候,又試了幾次,做的都是換湯不換藥的事情,并將上述代碼的 exit(-2) 換成 return 0 ,還有就是把初始化的代碼換了個位置,放到init()函數(shù)的里面的開始部分,運(yùn)行就OK了,不知道為什么出現(xiàn)這個問題,又換到以前的位置或是將 return 0 重新?lián)Q回 exit(-2) 運(yùn)行又是錯誤,鑒于這個問題的詭異性,相信大家或許沒遇到過,特此記錄下來,以供對后來可能會遇到的朋友們一個提示。也期待有哪位高人指點(diǎn)一下緣故?

 以下為最終運(yùn)行成功的代碼:



/**//*
   此程序有時成功有時失敗,只發(fā)現(xiàn)原因在于初始化glew的那幾句代碼的具體位置,具體緣由有待解決
*/
 

/**//*
 *  blendeqn.c
 *  Demonstrate the different blending functions available with the
 *  OpenGL imaging subset.  This program demonstrates use of the
 *  glBlendEquation() call.
 *
 *  The following keys change the selected blend equation function:
 *
 *      'a'  ->  GL_FUNC_ADD
 *      's'  ->  GL_FUNC_SUBTRACT
 *      'r'  ->  GL_FUNC_REVERSE_SUBTRACT
 *      'm'  ->  GL_MIN
 *      'x'  ->  GL_MAX
 
*/



#include 
<GL/glew.h>
#include 
<GL/glut.h>
#include 
<stdlib.h>

void init(void)
{

   GLenum err 
= glewInit() ;     
   
if (GLEW_OK != err)return 0;
   
/**//*上面兩行代碼很奇怪,加到主函數(shù)的init()函數(shù)前就不行,有時候又可以,此問題留待解決*/

   glClearColor(
1.01.00.00.0);

   glBlendFunc(GL_ONE, GL_ONE);
   glEnable(GL_BLEND);
}


void display(void)
{
   glClear(GL_COLOR_BUFFER_BIT);

   glColor3f(
0.00.01.0);
   glRectf(
-0.5,-0.5,0.5,0.5);

   glFlush();
}


void reshape(int w, int h)
{
   GLdouble aspect 
= (GLdouble) w / h;

   glViewport(
00, (GLsizei) w, (GLsizei) h);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   
if (aspect < 1.0{
     aspect 
= 1.0 / aspect;
     glOrtho(
-aspect, aspect, -1.01.0-1.01.0);
   }
 else
     glOrtho(
-1.01.0-aspect, aspect, -1.01.0);
   glMatrixMode(GL_MODELVIEW);
}


void keyboard(unsigned char key, int x, int y)
{
   
switch (key) {
      
case 'a'case 'A':
     
/**//* Colors are added as: (1, 1, 0) + (0, 0, 1) = (1, 1, 1)
      *  which will produce a white square on a yellow background.
      
*/

     glBlendEquation(GL_FUNC_ADD);
     
break;

      
case 's'case 'S':
     
/**//* Colors are subtracted as: (0, 0, 1) - (1, 1, 0) = (-1, -1, 1)
      *  which is clamped to (0, 0, 1), producing a blue square on a
      *  yellow background
      
*/
     glBlendEquation(GL_FUNC_SUBTRACT);
     
break;

      
case 'r'case 'R':
     
/**//* Colors are subtracted as: (1, 1, 0) - (0, 0, 1) = (1, 1, -1)
      *  which is clamed to (1, 1, 0).  This produces yellow for both
      *  the square and the background.
      
*/

     glBlendEquation(GL_FUNC_REVERSE_SUBTRACT);
     
break;

      
case 'm'case 'M':
     
/**//* The minimum of each component is computed, as
      *  [min(1, 0), min(1, 0), min(0, 1)] which equates to (0, 0, 0).
      *  This will produce a black square on the yellow background.
      
*/

     glBlendEquation(GL_MIN);
     
break;

      
case 'x'case 'X':
     
/**//* The minimum of each component is computed, as
      *  [max(1, 0), max(1, 0), max(0, 1)] which equates to (1, 1, 1)
      *  This will produce a white square on the yellow background.
      
*/

     glBlendEquation(GL_MAX);
     
break;

      
case 27:
         exit(
0);
   }

   
   glutPostRedisplay();
}


int main(int argc, char** argv)

   glutInit(
&argc, argv);
   glutInitDisplayMode(GLUT_SINGLE 
| GLUT_RGB);
   glutInitWindowSize(
512,512);
   glutInitWindowPosition(
100100);
   glutCreateWindow(argv[
0]);

   init();
   
   glutReshapeFunc(reshape);
   glutKeyboardFunc(keyboard);
   glutDisplayFunc(display);
   glutMainLoop();
   
return 0;
}



 

posted on 2010-02-14 21:37 蝸牛也Coding 閱讀(1126) 評論(3)  編輯 收藏 引用

評論

# re: 關(guān)于OpenGl編程指南 第6版 第142頁 示例程序6-1 的運(yùn)行問題 2010-02-27 15:53 philip

太好了
正為這個問題奇怪呢
感謝感謝  回復(fù)  更多評論   

# re: 關(guān)于OpenGl編程指南 第6版 第142頁 示例程序6-1 的運(yùn)行問題 2011-04-28 10:18 susan

Linking...
blendeqn.obj : error LNK2001: unresolved external symbol __imp__glewInit
blendeqn.obj : error LNK2001: unresolved external symbol __imp____glewBlendEquation
Debug/blendeqn.exe : fatal error LNK1120: 2 unresolved externals
執(zhí)行 link.exe 時出錯.
Creating browse info file...

我按你說的改了,還是不行啊,為什么?  回復(fù)  更多評論   

# re: 關(guān)于OpenGl編程指南 第6版 第142頁 示例程序6-1 的運(yùn)行問題 2011-04-28 10:38 susan

噢,想起來了,glew32.lib 在project setting 的links模塊下沒加上。  回復(fù)  更多評論   


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(8)

隨筆檔案(78)

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲一区二区三区三| 国产精品高潮呻吟视频| 亚洲经典三级| 久久久国产视频91| 午夜一区二区三区在线观看| 亚洲国产日韩一级| 亚洲日本乱码在线观看| 亚洲人成高清| 亚洲午夜免费视频| 久久国产精品亚洲va麻豆| 久久综合激情| 欧美色综合天天久久综合精品| 欧美性一二三区| 国产尤物精品| 一个色综合av| 久久久久久一区| 亚洲日本一区二区三区| 亚洲欧美欧美一区二区三区| 久久久久久久高潮| 欧美日韩国产小视频在线观看| 国产精品男女猛烈高潮激情 | 午夜精品美女久久久久av福利| 久久成人在线| 亚洲精品乱码久久久久久按摩观 | 亚洲福利视频一区| 亚洲一级在线观看| 免费日韩一区二区| 亚洲一区欧美激情| 欧美aⅴ99久久黑人专区| 国产精品毛片| 日韩一二三在线视频播| 欧美一区免费视频| 99精品国产高清一区二区| 久久久91精品国产| 国产日韩欧美黄色| 亚洲精品视频在线观看网站| 久久国产黑丝| 宅男噜噜噜66国产日韩在线观看| 久久野战av| 国产一区二区三区直播精品电影| 日韩亚洲欧美中文三级| 久久婷婷国产麻豆91天堂| 亚洲一区在线免费| 欧美三级在线播放| 在线一区二区日韩| 亚洲经典在线| 欧美sm视频| 亚洲激情电影在线| 免费国产自线拍一欧美视频| 亚洲欧美一区二区在线观看| 国产精品福利片| 亚洲一区二区三区色| 日韩午夜在线| 国产精品www网站| 亚洲一二三四区| 99国产精品久久久| 欧美一区二区私人影院日本| 亚洲先锋成人| 欧美成人免费大片| 亚洲福利视频三区| 欧美黑人国产人伦爽爽爽| 久久久久久久一区二区三区| 国产一区二区在线免费观看 | 久久久久久久久伊人| 黄色成人在线免费| 欧美成年人在线观看| 免费成人av在线| 亚洲欧洲日产国产网站| 欧美大片免费| 欧美精品入口| 亚洲欧美日韩国产一区| 午夜精品成人在线| 精品成人在线视频| 欧美激情麻豆| 欧美日韩一区在线观看视频| 亚洲女ⅴideoshd黑人| 亚洲午夜国产一区99re久久 | 欧美一区影院| 亚洲激情精品| 一区二区三区免费观看| 国产精品免费看| 噜噜噜在线观看免费视频日韩| 蜜臀va亚洲va欧美va天堂 | 欧美高潮视频| 欧美日韩国产精品自在自线| 亚洲欧美日韩国产中文| 久久国产精品一区二区三区| 亚洲另类黄色| 性伦欧美刺激片在线观看| 亚洲福利视频专区| 亚洲视频 欧洲视频| 精品88久久久久88久久久| 日韩视频免费观看高清在线视频| 国产精品入口麻豆原神| 免费一级欧美片在线观看| 欧美日韩精品伦理作品在线免费观看| 性欧美大战久久久久久久免费观看| 欧美一区二区日韩| 亚洲国产老妈| 欧美一区在线看| 亚洲午夜精品一区二区| 久久久久久999| 亚洲欧美日韩精品久久久久| 久久久噜噜噜久噜久久| 亚洲欧美中文日韩在线| 免费影视亚洲| 久久免费视频这里只有精品| 欧美日韩亚洲天堂| 欧美顶级少妇做爰| 国产深夜精品福利| 亚洲私人影院| 亚洲少妇最新在线视频| 蜜臀久久久99精品久久久久久| 欧美不卡视频| 欧美激情在线狂野欧美精品| 欧美日韩视频专区在线播放 | 99在线热播精品免费| 亚洲第一免费播放区| 欧美在线黄色| 欧美亚洲一区| 国产精品美女久久久久久2018| 91久久精品久久国产性色也91| 激情丁香综合| 欧美中文字幕视频| 久久国产欧美精品| 国产精自产拍久久久久久蜜| 一区二区三区成人| 亚洲天堂网在线观看| 欧美日本亚洲韩国国产| 亚洲欧洲三级| 一本久久青青| 欧美日韩中文| 亚洲色图在线视频| 午夜视频一区在线观看| 国产精品久久久久久模特 | 欧美成人精品高清在线播放| 一区免费观看| 两个人的视频www国产精品| 鲁大师成人一区二区三区 | 亚洲日本视频| 欧美国产先锋| 日韩视频不卡中文| 午夜精品福利视频| 国产午夜精品在线观看| 久久裸体艺术| 亚洲国产成人91精品| 亚洲人线精品午夜| 欧美日韩精品在线观看| 亚洲桃色在线一区| 久久精品视频在线观看| 在线观看日产精品| 欧美激情成人在线视频| 一二美女精品欧洲| 欧美专区在线播放| 亚洲国产精品成人| 国产精品va在线| 久久成人精品视频| 亚洲国产成人在线| 亚洲欧美久久久| 极品尤物久久久av免费看| 欧美成人午夜剧场免费观看| 日韩亚洲不卡在线| 久久精品中文| av成人免费| 国语自产精品视频在线看8查询8| 免费看亚洲片| 亚洲一区二区欧美日韩| 久久人91精品久久久久久不卡| 亚洲激情午夜| 国产精品色在线| 欧美福利一区| 性做久久久久久| 日韩一区二区免费看| 中文日韩在线| 国产精品福利片| 六十路精品视频| 亚洲一区在线播放| 亚洲成人在线视频播放| 性欧美精品高清| 欧美一区二区三区精品| 在线视频亚洲一区| 亚洲宅男天堂在线观看无病毒| 国产在线精品一区二区夜色| 欧美成人综合在线| 欧美在线视频全部完| 99国产精品99久久久久久| 男女激情久久| 久久久久久久尹人综合网亚洲| 中日韩视频在线观看| 亚洲黄色影片| 在线观看亚洲a| 国产一区二区三区观看| 国产精品高清在线| 欧美日韩国产bt| 欧美成人69| 久久综合久久综合久久综合| 亚洲欧美日韩在线观看a三区| 亚洲毛片av在线| 亚洲国产美女久久久久| 欧美成va人片在线观看|