VC_6中配置OpenGL开发环境

合集下载

如何在vc++6.0里面使用openGl

如何在vc++6.0里面使用openGl

如何在vc++6.0里面使用openGl?你既可以建立Win32项目使用API,也可以建立MFC工程(一般不用MFC框架直接用API)我给你一个例子吧,建立Win32空项目,添加一个cpp文件,编译执行就行了(这是一个经典的opengl框架了)代码如下:#pragma comment(lib,"opengl32.lib")#pragma comment(lib,"glu32.lib")#pragma comment(lib,"glaux.lib")#include <windows.h>#include <gl/gl.h>#include <gl/glu.h>#include <gl/glaux.h>HDC hDC=NULL;HGLRC hRC=NULL;HWND hWnd=NULL;HINSTANCE hInstance;BOOL keys[256];BOOL active=TRUE;BOOL fullscreen=TRUE;GLfloat rtri;GLfloat rquad;LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);GLvoid ResizeGLScene(GLsizei width,GLsizei height){if(height==0)height=1;glViewport(0,0,width,height);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);glMatrixMode(GL_MODELVIEW);glLoadIdentity();}int InitGL(GLvoid){glShadeModel(GL_SMOOTH);glClearColor(0.0f,0.0f,0.0f,0.5f);glClearDepth(1.0f);glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST); return TRUE;}int DrawGLScene(GLvoid){glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glLoadIdentity();glTranslatef(-1.5f,0.0f,-6.0f);glRotatef(rtri,0.0f,1.0f,0.0f);glBegin(GL_TRIANGLES);glColor3f(1.0f,0.0f,0.0f);glVertex3f(0.0f,1.0f,0.0f);glColor3f(0.0f,1.0f,0.0f);glVertex3f(-1.0f,-1.0f,1.0f);glColor3f(0.0f,0.0f,1.0f);glVertex3f(1.0f,-1.0f,1.0f);glColor3f(1.0f,0.0f,0.0f);glVertex3f(0.0f,1.0f,0.0f);glColor3f(0.0f,0.0f,1.0f);glVertex3f(1.0f,-1.0f,1.0f);glColor3f(0.0f,1.0f,0.0f);glVertex3f(1.0f,-1.0f,-1.0f);glColor3f(1.0f,0.0f,0.0f);glVertex3f(0.0f,1.0f,0.0f);glColor3f(0.0f,1.0f,0.0f);glVertex3f(1.0f,-1.0f,-1.0f);glColor3f(0.0f,0.0f,1.0f);glVertex3f(-1.0f,-1.0f,-1.0f);glColor3f(1.0f,0.0f,0.0f);glVertex3f(0.0f,1.0f,0.0f);glVertex3f(-1.0f,-1.0f,-1.0f); glColor3f(0.0f,1.0f,0.0f); glVertex3f(-1.0f,-1.0f,1.0f); glEnd();glLoadIdentity(); glTranslatef(1.5f,0.0f,-7.0f); glRotatef(rquad,1.0f,1.0f,1.0f); glBegin(GL_QUADS); glColor3f(0.0f,1.0f,0.0f); glVertex3f(1.0f,1.0f,-1.0f); glVertex3f(-1.0f,1.0f,-1.0f); glVertex3f(-1.0f,1.0f,1.0f); glVertex3f(1.0f,1.0f,1.0f);glColor3f(1.0f,0.5f,0.0f); glVertex3f(1.0f,-1.0f,1.0f); glVertex3f(-1.0f,-1.0f,1.0f); glVertex3f(-1.0f,-1.0f,-1.0f); glVertex3f(1.0f,-1.0f,-1.0f);glColor3f(1.0f,0.0f,0.0f); glVertex3f(1.0f,1.0f,1.0f); glVertex3f(-1.0f,1.0f,1.0f); glVertex3f(-1.0f,-1.0f,1.0f); glVertex3f(1.0f,-1.0f,1.0f);glColor3f(1.0f,1.0f,0.0f);//glVertex3f(1.0f,-1.0f,-1.0f); //glVertex3f(-1.0f,-1.0f,-1.0f); //glVertex3f(-1.0f,1.0f,-1.0f); //glVertex3f(1.0f,1.0f,-1.0f); glVertex3f(-1.0f,1.0f,-1.0f); glVertex3f(1.0f,1.0f,-1.0f); glVertex3f(1.0f,-1.0f,-1.0f); glVertex3f(-1.0f,-1.0f,-1.0f);glColor3f(0.0f,0.0f,1.0f); glVertex3f(-1.0f,1.0f,1.0f); glVertex3f(-1.0f,1.0f,-1.0f); glVertex3f(-1.0f,-1.0f,-1.0f); glVertex3f(-1.0f,-1.0f,1.0f);glVertex3f(1.0f,1.0f,-1.0f);glVertex3f(1.0f,1.0f,1.0f);glVertex3f(1.0f,-1.0f,1.0f);glVertex3f(1.0f,-1.0f,-1.0f);glEnd();rtri+=0.2f;rquad-=0.15f;return TRUE;}GLvoid KillGLWindow(GLvoid){if(fullscreen){ChangeDisplaySettings(NULL,0);ShowCursor(TRUE);}if(hRC){if(!wglMakeCurrent(NULL,NULL))MessageBox(NULL,"释放DC或RC失败","关闭错误",MB_OK|MB_ICONINFORMA TION);if(!wglDeleteContext(hRC))MessageBox(NULL,"释放RC失败","关闭错误",MB_OK|MB_ICONINFORMATION); hRC=NULL;}if(hDC && !ReleaseDC(hWnd,hDC)){MessageBox(NULL,"释放DC失败","关闭错误",MB_OK|MB_ICONINFORMATION); hDC=NULL;}if(hWnd && !DestroyWindow(hWnd)){MessageBox(NULL,"释放窗口句柄失败","关闭错误",MB_OK|MB_ICONINFORMA TION); hWnd=NULL;}if(!UnregisterClass("OpenG",hInstance)){MessageBox(NULL,"不能注销窗口类","关闭错误",MB_OK|MB_ICONINFORMATION); hInstance=NULL;}}BOOL CreateGLWindow(char* title,int width,int height,int bits,BOOL fullscreenflag){GLuint PixelFormat;WNDCLASS wc;DWORD dwExStyle;DWORD dwStyle;RECT WindowRect;WindowRect.left=(long)0;WindowRect.right=(long)width;WindowRect.top=(long)0;WindowRect.bottom=(long)height;fullscreen=fullscreenflag;hInstance=GetModuleHandle(NULL);wc.style=CS_HREDRAW|CS_VREDRAW|CS_OWNDC;wc.lpfnWndProc=(WNDPROC)WndProc;wc.cbClsExtra=0;wc.cbWndExtra=0;wc.hInstance=hInstance;wc.hIcon=LoadIcon(NULL,IDI_WINLOGO);wc.hCursor=LoadCursor(NULL,IDC_ARROW);wc.hbrBackground=NULL;wc.lpszMenuName=NULL;wc.lpszClassName="OpenG";if(!RegisterClass(&wc)){MessageBox(NULL,"注册窗口失败","错误",MB_OK|MB_ICONINFORMATION); return FALSE;}if(fullscreen){DEVMODE dmScreenSettings;memset(&dmScreenSettings,0,sizeof(dmScreenSettings));dmScreenSettings.dmSize=sizeof(dmScreenSettings);dmScreenSettings.dmPelsWidth=width;dmScreenSettings.dmPelsHeight=height;dmScreenSettings.dmBitsPerPel=bits;dmScreenSettings.dmFields=DM_BITSPERPEL|DM_PELSWIDTH|DM_PELSHEIGHT;if(ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCE SSFUL){if(MessageBox(NULL,"全屏模式设置失败!\n使用窗口模式?","OpenGL 3D游戏编程",MB_YESNO|MB_ICONEXCLAMA TION)==IDYES){fullscreen=FALSE;}else{MessageBox(NULL,"程序将被关闭","错误",MB_OK|MB_ICONINFORMA TION);return FALSE;}}}if(fullscreen){dwExStyle=WS_EX_APPWINDOW;dwStyle=WS_POPUP;ShowCursor(FALSE);}else{dwExStyle=WS_EX_APPWINDOW|WS_EX_WINDOWEDGE;dwStyle=WS_OVERLAPPEDWINDOW;}AdjustWindowRectEx(&WindowRect,dwStyle,FALSE,dwExStyle);if(!(hWnd=CreateWindowEx(dwExStyle,"OpenG",title,dwStyle|WS_CLIPSIBLINGS|WS_CLIPCHILDREN,0,0,WindowRect.right-WindowRect.left,WindowRect.bottom-WindowRect.top,NULL,NULL,hInstance,NULL))){KillGLWindow();MessageBox(NULL,"窗口创建失败","错误",MB_OK|MB_ICONINFORMATION);return FALSE;}static PIXELFORMA TDESCRIPTOR pfd={sizeof(PIXELFORMA TDESCRIPTOR),1,PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,PFD_TYPE_RGBA,bits,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,PFD_MAIN_PLANE,0,0,0,0};if(!(hDC=GetDC(hWnd))){KillGLWindow();MessageBox(NULL,"不能创建一个窗口设备描述表","错误",MB_OK|MB_ICONINFORMA TION);return FALSE;}if(!(PixelFormat=ChoosePixelFormat(hDC,&pfd))){KillGLWindow();MessageBox(NULL,"不能创建一个匹配的像素格式","错误",MB_OK|MB_ICONINFORMA TION);return FALSE;}if(!SetPixelFormat(hDC,PixelFormat,&pfd)){KillGLWindow();MessageBox(NULL,"不能设置像素格式","错误",MB_OK|MB_ICONINFORMATION); return FALSE;}if(!(hRC=wglCreateContext(hDC))){KillGLWindow();MessageBox(NULL,"不能创建OpenGL渲染描述表","错误",MB_OK|MB_ICONINFORMA TION);return FALSE;}if(!wglMakeCurrent(hDC,hRC)){KillGLWindow();MessageBox(NULL,"不能激活当前的OpenGL渲染描述表","错误",MB_OK|MB_ICONINFORMA TION);return FALSE;}ShowWindow(hWnd,SW_SHOW);SetForegroundWindow(hWnd);SetFocus(hWnd);ResizeGLScene(width,height);if(!InitGL()){KillGLWindow();MessageBox(NULL,"初始化失败","错误",MB_OK|MB_ICONINFORMA TION);return FALSE;}return TRUE;}LRESULT CALLBACK WndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam){switch(uMsg){case WM_ACTIV ATE:{if(!HIWORD(wParam))active=TRUE;elseactive=FALSE;return 0;}case WM_SYSCOMMAND:{switch(wParam){case SC_SCREENSA VE:case SC_MONITORPOWER:return 0;}break;}case WM_CLOSE:{PostQuitMessage(0);return 0;}case WM_KEYDOWN:{keys[wParam]=TRUE;return 0;}case WM_KEYUP:{keys[wParam]=FALSE;return 0;}case WM_SIZE:{ResizeGLScene(LOWORD(lParam),HIWORD(lParam));return 0;}}return DefWindowProc(hWnd,uMsg,wParam,lParam);}int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){MSG msg;BOOL done=FALSE;if(MessageBox(NULL,"你想在全屏模式下运行吗?","设置全屏模式",MB_YESNO|MB_ICONQUESTION)==IDNO){fullscreen=FALSE;}if(!CreateGLWindow("Win32 SDK风格OpenGL程序框架",640,480,16,fullscreen)) return 0;while(!done){if(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){if(msg.message==WM_QUIT)done=TRUE;else{TranslateMessage(&msg);DispatchMessage(&msg);}}else{if(active){if(keys[VK_ESCAPE])done=TRUE;else{DrawGLScene();SwapBuffers(hDC);}}if(keys[VK_F1]){keys[VK_F1]=FALSE;KillGLWindow();fullscreen=!fullscreen;if(!CreateGLWindow("Win32 SDK风格OpenGL程序框架",640,480,16,fullscreen)) return 0;}}}KillGLWindow();return msg.wParam;}。

VC++6.0运行OpenGL程序初始化

VC++6.0运行OpenGL程序初始化

首先,我们需要在Visual C++ 中创建一个工程。

假如你不知道怎么做的话,我想你应该先学习Visual C++ 而不是OpenGL。

可供下载的代码是用Visual C++ 6.0 写成的。

在某些版本的VC++ 中,需要把bool 改为BOOL,true 改为TRUE,false 改为FALSE。

做了上述修改之后,代码可以在Visual C++ 4.0和5.0 中编译通过。

在Visual C++ 中当你创建了一个新的Win32 程序(并非控制台程序) 之后,你还需要链接OpenGL 的库文件。

操作步骤是:Project-> Settings,点击LINK 标签,在“Object/Library Modules” 下面那一行的开始处(在kernel32.lib之前) 增添OpenGL32.lib,GLu32.lib 和GLaux.lib,完成之后点击OK 按钮。

现在你已经准备好来书写一个OpenGL 视窗程序了。

代码的前4行包含了我们所需库的头文件,如下:#include <windows.h> // Header File For Windows#include <gl\gl.h> // Header File For The OpenGL32 Library#include <gl\glu.h> // Header File For The GLu32 Library#include <gl\glaux.h> // Header File For The GLaux Library然后我们需要初始化所有要用的变量。

因为这个程序仅仅创建一个空的OpenGL 窗口,所以需要初始化的变量并不多。

一些变量的初始化工作是十分重要的,它们将在以后的每个OpenGL 程序中被沿用。

下面第一行代码设置一个Rendering Context (渲染描述表,着色描述表,渲染上下文),每一个OpenGL 程序都会连接一个Rendering Context,Rendering Context 将OpenGL调用连接到Device Context (设备描述表,设备上下文)。

VC++6.0入门【第一章_开发环境】

VC++6.0入门【第一章_开发环境】

第一章 VC++6.0开发环境 精讲VC++6.0提供了可视化的集成开发环境,包括AppWizard 、WorkSpace 、ClassWizard 和WizardBar 等实用开发工具。

学习了本章你将了解这些实用工具的使用,并熟悉集成开发平台的基本操作,学会一些简单的程序调试手段。

1.1认识Visual C++ 6.0 集成开发环境Developer Studio 是一个通用的可视化集成开发环境,支持Visual C++、Visual Basic 、Visual J++及Visual InterDev 等微软系列开发工具。

它包含文本编辑器、资源编辑器、源代码浏览器、增量连接器、项目编译工具、集成调试工具及一套联机文档,提供了项目工作区(WorkSpace)、应用程序向导(AppWizard)、类操作向导(ClassWizard)和Wizard Bar 等实用编程工具。

在已安装Microsoft Visual C++6.0的计算机上,单击“开始”菜单下的“程序”->Microsoft Visual Studio 6.0-> Microsoft Visual C++6.0菜单项,进入Visual C++ 6.0集成开发环境。

在集成开发环境中打开一个Visual C++的应用程序,如图1-1所示,窗口界面包括:标题栏、菜单栏、工具栏、项目工作区、编辑区和输出区。

图1-1 Microsoft Visual C++6.0开发环境 1.1.1项目与项目工作区项目工作区窗口一般位于屏幕左侧,包含ClassView 、ResourceView 及FileView 三个面板(或标签)。

项目工作区文件的扩展名为.dsw ,含有工作区的定义和项目中所包含文件的所有信息。

所以要打开一个项目,只需打开对应的项目工作区文件(*.dsw )。

1. ClassView 面板标题栏输出区项目工作区工具栏菜单栏编辑区ClassView显示的是当前项目中的类,如图1-2所示,应用程序Exam1_1中包含的类有:CAboutDlg、CExam1_1App、CExam1_1Doc、CExam1_1View和CMainFrame。

opengl配置

opengl配置

/percyph/archive/2009/03/03/75409.aspxVC下OpenGL配置以及glut配置OpenGL官方网站(英文)下面我将对Windows下的OpenGL编程进行简单介绍。

第一步:选择一个编译环境现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的。

但这里我们选择VC++ 6.0作为学习OpenGL的环境。

第二步:安装GLUT工具包GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。

Windows环境下的GLUT下载地址:(大小约为150k)/resources/libraries/glut/glutdlls37beta.zip无法从以上地址下载的话请使用下面的连接:/upfile/200607311626279.zipWindows环境下安装GLUT的步骤:1、将下载的压缩包解开,将得到5个文件2、以我的安装目录为例:(1)“d:\Program Files\Microsoft Visual Studio\VC98\include\GL文件夹”。

把解压得到的glut.h放到这个GL文件夹里。

没有GL文件夹可以自己建一个,一般都有的。

(2)“d:\Program Files\Microsoft Visual Studio\VC98\lib文件夹”。

把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹,即lib文件夹。

(3)把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。

(典型的位置为:C:\Windows\System32)这是非常重要的动态链接库设置!第三步,创建工程,其步骤如下:(1)创建一个Win32 Console Application。

(以我创建的为例,工程名为simpleGL)(2)链接OpenGL libraries:在Visual C++中先单击Project,再单击Settings,再找到Link 单击,最后在Object/library modules 的最前面加上opengl32.lib Glut32.lib Glaux.lib glu32.lib 。

VC++ 6.0集成开发环境使用方法简介

VC++ 6.0集成开发环境使用方法简介

VC++ 6.0集成开发环境使用方法简介本书涉及的C或C++语言源程序,均在Visual C++ 6.0(后简称VC6)开发环境中进行编制和调试。

这里将简要介绍VC6集成开发环境的使用和调试方法。

一.VC6的用户界面介绍双击安装好的VC6图标后,可以看到如附图A.1所示的界面,此时VC6处于编辑状态。

附图A.1 VC++ 6.0编辑状态的用户界面其中菜单栏集成了VC6的各种命令、功能和设置;工具栏则将最常用的命令、功能和设置直接用图标的形式给出,方便用户使用;“Workspace”子窗口(工作空间子窗口)可以把VC6工程中使用的各种类和文件按树形结构来浏览;文件子窗口则用来具体显示和编辑VC6工程所用到的文件,比如C++源文件、头文件等;输出子窗口用来显示编译、连接或者搜索等操作的结果。

二.VC 6集成开发环境的使用简介(1)创建VC6工程要使用VC6来编译一个C或者C++源文件,必须把这个文件插入一个VC6工程中,因此,先介绍VC6工程的创建步骤:①点击“File”菜单,选择“New…”菜单项,弹出“New”窗口;②切换“New”窗口选项卡为“Projects”,选择“Win32 Console Application”(Win32控制台应用程序),本书只使用这类工程即可;③在“Location:”下的文本框内填入工程保存的文件夹位置,也可以点其右侧的“…”按钮来定位文件夹;④在“Project name:”下的文本框内填入工程的名称,例如Prj1。

其它设置不用更改;⑤点“OK”后,出现“Win32 Console Application”设置向导窗口,选“An empty project”,点“Finish”,再点“OK”后,工程创建结束。

这时,一个空的Win32 Console Application工程就创建好了。

此时,“Workspace”子窗口就会显出“ClassView”(类浏览)和“FileView”(文件浏览)两个选项卡。

实验一vc6.0opengl绘图环境及简单图形的输出

实验一vc6.0opengl绘图环境及简单图形的输出

任课教师:马文娟《3D图形学》(2013-2014学年第1学期)实验报告学号:姓名:班级:实验一VC++6.0+OpenGL绘图环境及简单图形的输出一、实验目的1、熟练使用实验主要开发平台VC++6.0;2、进一步熟悉OpenGL的主要功能;3、掌握OpenGL的绘图流程和原理;4、掌握OpenGL的基本数据类型、核心函数的使用。

二、实验内容创建一个OpenGL工程,利用OpenGL库函数进行简单图形设计与绘制。

三、实验原理1、基本语法(C版本下的OpenGL语法)OpenGL基本函数均使用gl作为函数名的前缀,如glClearColor();实用函数则使用glu作为函数名的前缀,如gluSphere()。

OpenGL基本常量的名字以GL_开头,如GL_LINE_LOOP;实用常量的名字以GLU_开头,如GLU_FILL。

一些函数如glColor*()(定义颜色值),函数名后可以接不同的后缀以支持不同的数据类型和格式,如glColor3b()、glColor3d()、glColor3f()和glColor3bv ()等,这几个函数在功能上是相似的,只是适用于不同的数据类型和格式,其中3表示该函数带有三个参数,b、d、f分别表示参数的类型是字节型、双精度浮点型和单精度浮点型,v则表示这些参数是以向量形式出现的。

OpenGL定义了一些特殊标识符,如GLfloat、GLvoid,它们其实就是C中的float 和void。

2、程序的基本结构OpenGL程序的基本结构可分为三个部分:1)第一部分是初始化,主要是设置一些OpenGL的状态开关,如颜色模式(RGBA 或ALPHA)的选择,是否作光照处理(若有的话,还需设置光源的特性),深度检验、裁剪等。

这些状态一般都用函数glEnable(…)、glDisable(…)来设置,“…”表示特定的状态。

2)第二部分设置观察坐标系下的取景模式和取景框位置大小,主要利用了三个函数:函数void glViewport(left, top, right, bottom) 设置在屏幕上的窗口大小,四个参数描述屏幕窗口四个角上的坐标(以像素表示);函数void glOrtho(left, right, bottom, top, near, far) 设置投影方式为正交投影(平行投影),其取景体积是一个各面均为矩形的六面体;函数void gluPerspective(fovy, aspect, zNear, zFar) 设置投影方式为透视投影,其取景体积是一个截头锥体。

用VISUAL C++ 6实现OPENGL编程

用VISUAL C++ 6实现OPENGL编程
本文将给出一个例子,这个例子是一个用 OpenGL 显示图像的 Windows 程序,通过这 个程序我们也可以知道用 OpenGL 编程的基本要求。我们知 道,GDI 是通过设备句柄 (Device Context 以下简称"DC")来绘图,而 OpenGL 则需要绘制环境 (Rendering Context, 以下简称"RC")。每一个 GDI 命令需要传给它一个 DC,与 GDI 不同,OpenGL 使用当前绘 制环境 (RC)。一旦在一个线程中指定了一个当前 RC,所有在此线程中的 OpenGL 命令都 使用相同的当前 RC。虽然在单一窗口中可以使用多个 RC,但在单一线 程中只有一个当前 RC。本例将首先产生一个 OpenGL RC 并使之成为当前 RC,分为三个步骤:设置窗口像素 格式;产生 RC;设置为当前 RC。
1、首先创建工程 用 AppWizard 产生一个 EXE 文件,选择工程目录,并在工程名字中输入"GLSample1", 保持其他的不变;第一步、选单文档(SDI); 第二步、不支持数据库;第三步、不支持 OLE; 第四步、不选中浮动工具条、开始状态条、打印和预览支持、帮助支持的复选框(选中也可 以,本文只是说明最小 要求),选中三维控制(3D Controls);第五步、选中产生源文件注释 并使用 MFC 为共享动态库;第六步、保持缺省选择。按 Finish 结束,工 程创建完毕。 2、将此工程所需的 OpenGL 文件 和库加入到工程中 在工程菜单中,选择"Build"下的"Settings"项。单击"Link"标签,选择"General"目录,在 Object/Library Modules 的编辑框中输入"OpenGL32.lib glu32.lib glaux.lib"(注意,输入双引 号 中的内容,各个库用空格分开;否则会出现链接错误),选择"OK"结束。然后打开文件 "stdafx.h",将下列语句插入到文件中(划下划线的语句为所 加语句): #define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers #include // MFC core and standard components #include // MFC extensions #include #include #ifndef _AFX_NO_AFXCMN_SUPPORT #include // MFC support for Windows 95 Common Controls #endif // _AFX_NO_AFXCMN_SUPPORT 3、改写 OnPreCreate 函数并给视 类添加成员函数和成员变量 OpenGL 需要窗口加上 WS_CLIPCHILDREN(创建父窗口使用的 Windows 风格,用于 重绘时裁剪子窗口所覆盖的区域)和 WS_CLIPSIBLINGS(创建子窗口使用的 Windows 风 格,用于重绘时剪裁其他子窗口所覆盖的区域)风格。把 OnPreCreate 改写成 如下所示: BOOL CGLSample1View::PreCr- eateWindow(CREATESTRUCT& cs) { cs.style |= (WS_CLIPCHI- LDREN | WS_CLIPSIBLINGS);

VC++_6.0_开发环境

VC++_6.0_开发环境

Microsoft Visual C++ 6.0 控制台应用简介题目简介与任务分拆,部分可直接采用的代码片段、说明与提示;等等。

……,……。

下面的内容是,针对集成编程软件工具平台的使用、编程环境模式,即控制台应用过程的说明。

主要内容:0. Microsoft Visual C++简介1.创建一个新的C 语言的工程2.添加一个文件到一个空的工程中3.编写程序4.运行程序5.调试程序- 设置断点6.调试程序- 动态察看变量的值0. Microsoft Visual C++简介Microsoft Visual C++,(简称Visual C++、MSVC、VC++或VC)是微软公司的C++开发工具,具有集成开发环境,可支持基于C语言,C++ 以及C++/CLI 等编程语言的软件开发;特别是整合了微软视窗操作系统的应用程序设计接口(Windows API)、三维动画DirectX API、Microsoft MFC类库及Microsoft .NET 框架等。

当前最新的版本是Microsoft Visual C++ 2010。

根据本课程设计及前修课程《C语言程序设计》上机实验环节的情况,并结合当前全国计算机等级考试机试对开发环境的要求,本文针对Microsoft Visual C++ 6.0(以下简称VC6.0)开发环境下的控制台应用做简要介绍。

1.创建一个新的C 语言的工程1.1启动Microsoft Visual C++ 6.0启动VC6.0可以通过“开始”菜单,也可以通过桌面快捷方式等方式。

图1.1 VC6.0开发环境启动之后,我们看到的是空白的VC6.0开发环境截图如图1.1所示。

该截图是英文版的VC6.0,而中文版中的菜单、窗口与之一一对应。

跟大多数的Windows 应用程序一样,VC6.0最上面是菜单,然后是工具栏,中央是工作区,最下面一行是状态栏。

我们现在看到的工作区,左边是Workspace 窗口,右边是灰底的空白窗口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC 6中配置OpenGL开发环境2009-04-10 16:22这里,我习惯使用VC 6,就使用它作为开发OpenGL应用的IDE吧。

要在Windows下学习OpenGL,首先就是要配置开发环境,我在这里详细的说明整个配置过程,希望对初学的朋友有所帮助。

第一步:下载OpenGL库Windows环境下的GLUT下载地址:(大小约为150k)/resources/libraries/glut/glutdlls37beta.zip其实,也不是必须从这里下载,在你下载一些例子的时候,一般都会打包呆上OpenGL库的。

这里顺便介绍一下OpenGL吧:OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。

● 与C语言紧密结合。

OpenGL命令最初就是用C语言函数来进行描述的,对于学习过C语言的人来讲,OpenGL是容易理解和学习的。

如果你曾经接触过TC的graphics.h,你会发现,使用OpenGL作图甚至比TC更加简单。

● 强大的可移植性。

微软的Direct3D虽然也是十分优秀的图形API,但它只用于Windows系统(现在还要加上一个XBOX游戏机)。

而OpenGL不仅用于Windows,还可以用于Unix/Linux等其它系统,它甚至在大型计算机、各种专业计算机(如:医疗用显示设备)上都有应用。

并且,OpenGL的基本命令都做到了硬件无关,甚至是平台无关。

● 高性能的图形渲染。

OpenGL是一个工业标准,它的技术紧跟时代,现今各个显卡厂家无一不对OpenGL提供强力支持,激烈的竞争中使得OpenGL性能一直领先。

总之,OpenGL是一个很NB的图形软件接口。

至于究竟有多NB,去看看DOOM3和QUAKE4等专业游戏就知道了。

OpenGL官方网站(英文):第二步:OpenGL库配置文件加压缩下载的OpenGL库文件,上面那个下载下来可能没有我下面列举的文件多,可以到网上下载的,或者Email我,我给你发一份。

OpenGL库配置用到的文件分为下面三类:■ 动态链接库文件(.dll)glaux.dll、glu32.dll、glut32.dll、OPENGL32.DLL。

■ 头文件(.h)GL.H、GLAUX.H、glos.h、GLU.H、glut.h。

■ 库文件(.lib)GLAUX.LIB、Glu32.lib、glut32.lib、Opengl32.lib。

第三步:Windows下配置OpenGL假设我的VC 6安装到D:\Program Files\Microsoft Visual Studio目录下。

将上一步提到的动态链接库文件,全部拷贝到C:\WINDOWS\system目录下面;将上一步提到的头文件,全部拷贝到D:\Program Files\Microsoft Visual Studio\VC98\Include\GL目录下面,如果没有GL目录的话,自己创建一个;将上一步提到的库文件,全部拷贝到D:\Program Files\Microsoft Visual Studio\VC98\Lib目录下面。

第四步:配置VC 6中工程启动VC 6,新建一个Win32 Console Application1、按照如下顺序选择:Project → Settings → Link选项卡然后,在Object/library modules下面的文本框的最前面添加如下库文件内容:Opengl32.lib glut32.lib GLAUX.LIB Glu32.lib最后,在Project Options中修改subsystem:console修改为subsystem:windows。

2、再按照如下顺序选择:Project → Settings → C/C++选项卡将Preprocessor definitions 中的_CONSOLE修改为_WINDOWS。

现在,你可以进行测试了,测试你的OpenGL应用。

关于异常问题总结如果,你在测试的时候,出现下面的异常:libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 这是 Windows子系统设置错误,你可以通过如下方式解决:按照如下顺序选择:Project → Settings → C/C++选项卡,然后将Preprocessor definitions 中的_CONSOLE修改为_WINDOWSwindows下安装opengl的glut库2008年10月28日星期二 19:42原文windows下安装opengl的glut库GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。

Windows环境下的GLUT下载地址:(大小约为150k)/resources/libraries/glut/glutdlls37beta.zip无法从以上地址下载的话请使用下面的连接:/upfile/200607311626279.zipWindows环境下安装GLUT的步骤:1、将下载的压缩包解开,将得到5个文件2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\PlatformSDK\include\gl 文件夹”)。

把解压得到的glut.h放到这个文件夹。

3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VisualStudio2005,则应该是其安装目录下面的“VC\lib”文件夹)。

4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。

(典型的位置为:C:\Windows\System32)OpenGL study你可以在OpenGL的官方网站的Documentation中下载到官方教程和例子程序:The OpenGL Programming Guide,这就是著名的red book(“红皮书”)如果你英语不好,那么推荐你阅读:《OpenGL超级宝典》是一本相当不错的中文教程。

可以在/forumdisplay.php?fid=29找到它的例子代码《OpenGL编程权威指南》他是red book的中文译本,它的例子也就是red book 的例子。

*Nate Robin的例子对你理解OpenGL很有帮助。

/reference/articles/article839.asp*The OpenGL Reference Manual(blue book)并不是一本入门教材,而是一本函数参考手册,可以从的Documentation中下载下来,在实际学习中查询用*NeHe的例子也是大家所喜爱的初学者例子。

,在还有一部分的中文译文***nehe的简单窗口例子(第二课)几乎含盖世界上的所有语言,如果想用自己喜欢的独特语言,可以参考/data/lessons/lesson.asp?lesson=02最下方的联接,并结合C++的例子学习(大多数教材都是基于C++的,不过幸好我们真正关注的是OpenGL本身)OpenGL的例子大都需要用到OpenGL应用工具包:GLUT库,下面讲讲怎样安装它Visual C++ 6.0 HOWTO:1。

下载GLUT库:/resources/libraries/glut/glutdlls37beta.zip2。

将压缩包内的glut.h放到...\Microsoft Visual Studio\VC98\Include\GL 目录下将glut32.lib放到...\Microsoft Visual Studio\VC98\Lib目录下将glut32.dll放到X:\windows\systom32目录下(win98用户放到X:\windows\systom目录下)3。

建立一个控制台工程Win32 Console Application,加入hello.c并运行:#i nclude <GL/glut.h>void display(void){glClear (GL_COLOR_BUFFER_BIT);/* clear all pixels */glColor3f (1.0, 1.0, 1.0);glBegin(GL_POLYGON);/* draw white polygon with corners at(0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)*/glVertex3f (0.25, 0.25, 0.0);glVertex3f (0.75, 0.25, 0.0);glVertex3f (0.75, 0.75, 0.0);glVertex3f (0.25, 0.75, 0.0);glEnd();glFlush ();/* start processing buffered OpenGL routines */}void init (void){glClearColor (0.0, 0.0, 0.0, 0.0);/* select clearing color */ glMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);/* initialize viewing values */}int main(int argc, char** argv){glutInit(&argc, argv);glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);/*Declare initial display mode(single buffer and RGBA).*/glutInitWindowSize (250, 250); /*Declare initial window size.*/ glutInitWindowPosition (100, 100);/*Declare initial window position.*/glutCreateWindow ("hello");/*Open window with "hello"in its title bar.*/init ();/*Call initialization routines.*/glutDisplayFunc(display); /*Register callback function to display graphics.*/glutMainLoop();/*Enter main loop and process events.*/return 0; /* ANSI C requires main to return int. */}OpenGL是目前用于开发可移植的、可交互的2D和3D图形应用程序的首选环境,也是目前应用最广泛的计算机图形标准。

相关文档
最新文档