转自:http://blog.csdn.net/tyxkzzf/article/details/40789901
今天打开一个OpenGL源码,各种修改之后想要运行看一下效果,结果在我的开发环境下出现缺少相应的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删除掉,果然运行成功。
转自:http://blog.csdn.net/tyxkzzf/article/details/40789901