VC_6中配置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程序初始化

首先,我们需要在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提供了可视化的集成开发环境,包括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配置

/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集成开发环境使用方法简介本书涉及的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绘图环境及简单图形的输出

任课教师:马文娟《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编程

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_开发环境

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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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图形应用程序的首选环境,也是目前应用最广泛的计算机图形标准。