一、下面将对VS2010中配置OpenGL进行简单介绍。

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

我选择Visual Studio 2010和VC6++作为学习OpenGL的环境。 第二步,安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装。 Windows环境下的GLUT下载地址:(大小约为150k) http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip 无法从以上地址下载的话请使用下面的连接:
http://upload.programfan.com/upfile/200607311626279.zip Windows环境下安装GLUT的步骤: 1、将下载的压缩包解开,将得到5个文件,分别是glut.h,glut.lib,glut32.lib,glut.dll,glut32.dll 2、将其中的glut.h放到C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl里面,VS2010会自动搜索这个路径。

3. 将glut.lib和glut32.lib复制到F:\vs2010\VC\lib下,根据VS2010的具体安装路径确定。

4. 将glut.dll和glut32.dll复制到C:\WINDOWS\system32下。

至此,环境已经配置好了。

下面来开发一个简单的c++程序,环境vs2010中的vc

1. 新建->项目->win32控制台应用程序。

2. 输入项目名:simpleGL,其他默认即可。

3. 输入源代码:

 #include <gl/glut.h>
#include <stdio.h>
#include <time.h> //太阳、地球和月亮
//假设每个月都是30天
//一年12个月,共是360天
static int day = ;//day的变化:从0到359 double CallFrequency()
{
static int count;
static double save;
static clock_t last,current;
double timegap; ++count;
if(count<=)
return save;
count = ;
last = current;
current = clock();
timegap = (current-last)/(double)CLK_TCK;
save = 50.0/timegap;
return save;
} void myDisplay(void)
{
double FPS = CallFrequency();
printf("FPS = %f\n",FPS); glEnable(GL_DEPTH_TEST);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(,,,);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(,-,,,,,,,); //绘制红色的“太阳”
glColor3f(1.0f,0.0f,0.0f);
glutSolidSphere(,,);
//绘制蓝色的“地球”
glColor3f(0.0f,0.0f,1.0f);
glRotatef(day/360.0*360.0,0.0f,0.0f,-1.0f);
glTranslatef(,0.0f,0.0f);
glutSolidSphere(,,);
//绘制黄色的“月亮”
glColor3f(1.0f,1.0f,0.0f);
glRotatef(day/30.0*360.0-day/360.0*360.0,0.0f,0.0f,-1.0f);
glTranslatef(,0.0f,0.0f);
glutSolidSphere(,,); glFlush();
glutSwapBuffers();
} void myIdle(void)
{
++day;
if(day>=)
day = ;
myDisplay();
} int main(int argc,char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
glutInitWindowPosition(,);
glutInitWindowSize(,);
glutCreateWindow("太阳,地球和月亮");
glutDisplayFunc(&myDisplay);
glutIdleFunc(&myIdle);
glutMainLoop(); return ;
}

4. 选择项目属性,选择C/C++->预处理器,在右侧的“预处理器定义”处,删除“_CONSOLE“

5. 在项目属性中,切换到“链接器”->系统,右侧窗口的子系统选择:窗口 (/SUBSYSTEM:WINDOWS)

6. 在项目属性中,再切换到“链接器”->命令行,在“其他选项”中输入:/ENTRY:mainCRTStartup (可以去除程序运行时出现的dos窗口)

编译运行,就能看到“太阳、地球和月亮的动态运行图”了!

 二、程序无法启动此应用程序,因为计算机中丢失glut32.dll

Windows7 64位+VS2010

提示:程序无法启动此应用程序,因为计算机中丢失glut32.dll。。。。。。

果断查看System32文件夹,发现有这个文件,那就不明白了,为什么还是找不到呢,不合理啊。

一时半会儿没找到,为了尽快看到代码运行的效果,就把这个dll拷贝到生成的exe同级目录了,嗯,可以了。

不过不甘心,后来查看Windows目录,发现在system32同级的目录还有一个目录:SysWOW64,看样子是64位特有的文件夹,果断查一下这个文件夹的来龙去脉,这里引用一下百度百科的解释:

转换库
WoW64子系统是一个轻量级的compatibility layer, 在所有版本的windows上都拥有同样的接口. 它的主要目的是用来创建32-bit环境, 为了让32位的应用程序可以不经过任何修改就运行在64-bit的系统上, 它提供了必须的接口。 技术上说, WOW64是由三个DLL实现的。 Wow64.dll是Windows NT kernel的核心接口, 在32位和64位调用之间进行转换, 包括指针和调用栈的操控. Wow64win.dll 为32位应用程序提供合适的入口指针. Wow64cpu.dll 负责将处理器在32位和64位的模式之间转换。

而且在该目录下发现了glut.dll,这不是glut32.dll的近亲嘛,于是就把这个dll放到该目录下,把跟exe同级目录里的那个dll删除掉,果然运行成功。

三、手动卸载 Visual Studio

    接下来我再说两句关于卸载VS2010的问题,因为我在开发中遇到小问题,卸载了它再重装的,但是卸载相对其它软件来说要麻烦点。
 
    卸载时要注意自己安装VS2010的时间,我推荐用360软件管家卸载,根据时间手动卸载。手动卸载的项目有如下:

1.      删除 Visual Studio 2010 产品的所有实例。

2.      按下列顺序卸载任何支持产品。使用非英语安装时,还必须删除列出的某些产品的语言包。在您删除列表上的最后一个包之前,没有必要重新启动。

a.      Microsoft Visual Studio 2010 ADO.NET 实体框架工具

b.      Microsoft SQL Server 2008 R2 Transact-SQL 语言服务

c.      Microsoft SQL Server 2008 R2 数据层应用程序项目

d.      Microsoft SQL Server 2008 R2 数据层应用程序框架

e.      Microsoft Sync Framework SDK 1.0 版 SP1

f.       Microsoft Sync Framework Services 1.0 版 SP1

g.      Microsoft Sync Framework Runtime 1.0 版 SP1

h.      Microsoft Silverlight 3 SDK

i.        Microsoft ASP.NET MVC 2

j.       Microsoft ASP.NET MVC 2 - Visual Studio 2010 工具

k.      Microsoft .NET Framework 4 Multi-Targeting Pack

l.        Microsoft TFS 对象模型

m.   Microsoft Visual F# 2.0 运行时

n.      Microsoft Visual Studio x64 系统必备

vs2010中配置OpenGL以及针对64位系统所遇问题的解决办法的更多相关文章

  1. VS2010中配置OpenGL

    下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作第一步,选择一个编译环境现在Windows系统的主流编译环境有Visual Studio,Broland C++ Bu ...

  2. VS2010中没有ado.net entity data model实体数据模型这一选项-解决办法

    前提先安装VS2010 SP1包. 解决办法: 1.从VS2010的安装盘目录下面的WCU\EFTools找到ADONETEntityFrameworkTools_chs.msi和ADONETEnti ...

  3. oracle_安装_win7+64位+Oracle+11g+64位下使用PLSQL+Developer+的解决办法

    1)安装Oracle 11g 64位 2)安装32位的Oracle客户端( instantclient-basic-win32-11.2.0.1.0) 下载instantclient-basic-wi ...

  4. VS2010中 打开vc6.0的工程时,遇到的问题及解决办法

    用VS2010打开vc6.0的工程时,遇到了很多的问题,下面记录下解决办法. 1. 报错: error C2065: “i”: 未声明的标识符 解决办法: 提出 i 的申明,因为 i 的申明可能在fo ...

  5. windows 64位下 Octave 不能画图的解决办法

    如果不能画图,可能需要更改图形工具包. 1.首先,查看当前的工具包.在Octave命令行中键入 graphics_toolkit,结果如下: >> graphics_toolkit    ...

  6. 安装SQL Server 2016出错提示:需要安装oracle JRE7 更新 51(64位)或更高版本完美解决办法

    错误提示原因:安装时检测出电脑没有安装JDK,而且是版本7(其他版本不行) 解决方法:先进下面这个网站安装JDK,安装好后配置环境变量,然后重新安装SQL Server 2016即可 http://w ...

  7. 在Windows 7 64位下注册ActiveX失败的解决办法

    copy Chart10W.dll  %SystemRoot%\SysWOW64\ copy cellweb5.inf  %SystemRoot%\SysWOW64\ copy hado.dll %S ...

  8. Windows7 64位系统下无法安装网络打印机的解决方法

    背景: 公司一台HP LaserJet 1010 打印机连在一台Windows XP的电脑上,而我的是windows7 64位系统,无法安装驱动解决办法:1:去惠普官网上下载对应的64位驱动(什么Vi ...

  9. 【转】将 Linux 应用程序移植到 64 位系统上

    原文网址:http://www.ibm.com/developerworks/cn/linux/l-port64.html 随着 64 位体系结构的普及,针对 64 位系统准备好您的 Linux® 软 ...

随机推荐

  1. du,df 磁盘管理

    du会把指定目录下所有文件.目录.目录下的文件都统计.是建立在文件系统能看到的的确确是有这样一些文件的基础上的.也就是说我们能在文件系统里面看到的文件才会被du统计. df命令可以获取硬盘被占用了多少 ...

  2. 如何将本地的项目上传到git

    如何将本地的项目上传到git 1 进入项目文件夹,把目录变为git仓库 git init 2 把文件添加到版本库中 git add . 3 把版本提交到版本库 git commit -m 'first ...

  3. Java之聊天室系统设计一

    任务: 先上实现效果图: 登陆界面: index.jsp: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...

  4. 搞懂分布式技术9:Nginx负载均衡原理与实践

    搞懂分布式技术9:Nginx负载均衡原理与实践 本篇摘自<亿级流量网站架构核心技术>第二章 Nginx负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容, ...

  5. 阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章,结合《XXX重大技术需求征集系统》,列举实例分析采用的可用性和可修改性战术,将上述内容撰写成一篇1500字左右的博客阐述你的观点。

    这三章主要讲述的是网站的可用性.伸缩性和可扩展性. 首先,网站的可用性描述网站可有效访问的特性,相比于网站的其他非功能特性,网站的可用性更容易引起人们的注意,尤其是大型网站的可用性,如果大公司的网站出 ...

  6. Python3 学习第十三弹: 模块学习五之pickle与json

    对于python来说,这两个模块是十分实用的两个模块,以一种简单的方法用于储存数据实例. pickle模块 提供用来储存Python各种数据序列化存储 # 原来的cPickle已经在python3中与 ...

  7. Falsy Bouncer

    真假美猴王! 删除数组中的所有假值. 在JavaScript中,假值有false.null.0."".undefined 和 NaN. 这是一些对你有帮助的资源: Boolean ...

  8. css3之calc()

    初识calc() 在使用calc()之前,我也只是听说有这么一个东西,但在用过之后我才发现这个功能其实很实用. calc()其实就是英文calculate(计算)的缩写,它看起来像个函数吧? 其实不是 ...

  9. MVC DateTime 字段 EditTime 必须是日期模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式

    ASP.NET MVC 中model含有DateTime类型的字段 更新字段时提示:字段 EditTime必须是日期,. 但是明明填入的是日期还是给出这个提示, 看有的博客说那是因为日期形式错了,如果 ...

  10. LeetCode OJ:Maximal Rectangle(最大矩形)

    Given a 2D binary matrix filled with 0's and 1's, find the largest rectangle containing all ones and ...