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

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

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


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

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

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



/**//*
   此程序有時(shí)成功有時(shí)失敗,只發(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ù)前就不行,有時(shí)候又可以,此問(wèn)題留待解決*/

   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) 評(píng)論(3)  編輯 收藏 引用

評(píng)論

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

太好了
正為這個(gè)問(wèn)題奇怪呢
感謝感謝  回復(fù)  更多評(píng)論   

# re: 關(guān)于OpenGl編程指南 第6版 第142頁(yè) 示例程序6-1 的運(yùn)行問(wè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 時(shí)出錯(cuò).
Creating browse info file...

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

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

噢,想起來(lái)了,glew32.lib 在project setting 的links模塊下沒(méi)加上。  回復(fù)  更多評(píng)論   


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


<2010年2月>
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(8)

隨筆檔案(78)

搜索

積分與排名

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美高清成人| 欧美一区二区三区四区夜夜大片| 久久久人人人| 久久久久9999亚洲精品| 在线日本成人| 亚洲精品日日夜夜| 国产精品日韩欧美一区| 久久久久久久综合| 久久综合九色| 99国内精品| 亚洲欧美卡通另类91av| 亚洲电影在线观看| 99精品欧美一区二区三区综合在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 亚洲韩日在线| 国产精品av久久久久久麻豆网| 先锋影音久久久| 久久伊人精品天天| 宅男精品视频| 久久久久国产一区二区| 99pao成人国产永久免费视频| 制服丝袜亚洲播放| 极品日韩久久| 夜夜嗨av一区二区三区| 一区在线视频| 亚洲午夜成aⅴ人片| 精品99一区二区| 亚洲视频自拍偷拍| 91久久精品国产91久久| 亚洲欧美国产毛片在线| 日韩视频欧美视频| 你懂的一区二区| 欧美诱惑福利视频| 欧美视频免费看| 欧美成人一区二区| 国产美女精品| 99视频精品在线| 一区二区在线看| 午夜在线精品| 亚洲欧美日韩国产成人精品影院| 美女视频网站黄色亚洲| 久久久精品日韩| 国产精品日日摸夜夜摸av| 亚洲黄页一区| 影音先锋久久精品| 欧美一区二区在线免费播放| 亚洲最快最全在线视频| 久久夜色精品国产亚洲aⅴ| 久久精品视频在线免费观看| 国产精品扒开腿做爽爽爽软件| 亚洲国产你懂的| 亚洲国内欧美| 久久蜜臀精品av| 久久久人成影片一区二区三区 | 久久精品国产久精国产爱| 先锋影音久久久| 国产欧美日韩视频| 亚洲免费伊人电影在线观看av| 中国av一区| 欧美色图一区二区三区| 日韩一级在线观看| 亚洲天堂视频在线观看| 欧美裸体一区二区三区| 亚洲精品久久| 一区二区三区四区国产精品| 欧美日韩在线三区| 99综合在线| 午夜精品在线观看| 国产日韩欧美二区| 欧美在线看片a免费观看| 久久久999| 在线观看一区二区精品视频| 狂野欧美激情性xxxx| 亚洲国产99精品国自产| 夜夜爽99久久国产综合精品女不卡| 欧美日韩hd| 亚洲欧美一区二区原创| 久久一区二区三区av| 亚洲国产精品一区二区www在线| 欧美国产日韩一区| 洋洋av久久久久久久一区| 亚洲综合欧美| 激情综合自拍| 欧美日韩www| 小黄鸭视频精品导航| 欧美xx69| 亚洲伊人观看| 狠狠综合久久av一区二区老牛| 免费看的黄色欧美网站| 亚洲作爱视频| 免费成人在线观看视频| 一区二区三区成人精品| 国产午夜精品全部视频播放 | 亚洲免费观看高清完整版在线观看熊 | 欧美va亚洲va香蕉在线| 国产精品99久久久久久白浆小说| 国产伦精品一区二区三区在线观看 | 亚洲欧洲精品天堂一级| 欧美在线资源| 亚洲理伦在线| 国产亚洲二区| 欧美日韩网站| 久久一区视频| 亚洲免费中文| 亚洲人成网站精品片在线观看| 香港久久久电影| 亚洲精品久久久一区二区三区| 国产精品久久久久久户外露出 | 欧美午夜片在线观看| 久久午夜视频| 午夜激情综合网| 亚洲精品色婷婷福利天堂| 另类亚洲自拍| 久久不见久久见免费视频1| 亚洲免费电影在线观看| 黄色一区三区| 国产欧美日韩不卡| 欧美日韩亚洲一区三区 | 蜜桃av一区| 久久精品在线观看| 香蕉久久一区二区不卡无毒影院 | 亚洲欧美一区二区在线观看| 亚洲精选国产| 亚洲第一精品夜夜躁人人躁| 国产乱人伦精品一区二区| 欧美日韩另类国产亚洲欧美一级| 久久米奇亚洲| 久久久久久网| 久久精品99国产精品| 午夜影院日韩| 欧美在线看片| 欧美一区二区视频在线观看| 亚洲欧美清纯在线制服| 亚洲天天影视| 亚洲无玛一区| 亚洲一区二区三| 亚洲午夜激情免费视频| 一区二区三区高清在线| 日韩午夜在线| 亚洲视频二区| 亚洲自拍偷拍视频| 午夜亚洲影视| 久久精品一本久久99精品| 欧美中文字幕在线观看| 久久国产精品一区二区| 久久福利毛片| 久久综合伊人77777| 美国十次了思思久久精品导航| 久久综合色播五月| 欧美激情在线观看| 欧美日韩综合视频网址| 国产精品v欧美精品v日韩精品| 国产精品久久久久av免费| 国产欧美日韩亚洲一区二区三区| 国产日本欧美一区二区三区| 国模 一区 二区 三区| 在线成人www免费观看视频| 亚洲三级免费电影| 亚洲深夜福利网站| 久久久精彩视频| 欧美高清视频一区二区| 日韩午夜中文字幕| 午夜精品久久久久久久男人的天堂 | 影音先锋另类| 亚洲看片免费| 亚洲欧洲av一区二区| 久久先锋资源| 亚洲欧洲另类国产综合| 中文国产成人精品| 久久精品欧美| 欧美三级网址| 国内精品久久久久久久97牛牛| 亚洲精品一区二区三区四区高清| 亚洲一区久久久| 美日韩精品视频| 这里只有精品视频| 久久久久久久国产| 欧美性猛交xxxx乱大交蜜桃| 有码中文亚洲精品| 亚洲欧美国产制服动漫| 男人插女人欧美| 一区二区三区毛片| 免费欧美在线视频| 国产一区二区你懂的| 99精品99| 免费久久99精品国产| 亚洲午夜国产一区99re久久| 欧美大尺度在线观看| 国产一区成人| 亚洲一区二区高清| 亚洲高清影视| 久久成人精品| 国产精品久久久久毛片大屁完整版 | 欧美99久久| 午夜老司机精品| 国产精品mm| 一区二区成人精品| 欧美成人蜜桃| 久久国产精品久久久久久久久久 | 老鸭窝亚洲一区二区三区|