找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 5083|回复: 7

【OpenGL】OpenGL EW的适用于VB的glew32vb.dll

[复制链接]
发表于 2014-8-29 14:57:44 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
OpenGL EW是一个跨平台开源的OpenGL扩展库,提供了高效的运行时机制来判断运行平台是否支持某些OpenGL扩展。
使用OpenGL EW能让你在Windows下使用高版本的OpenGL,绕过了DX的模拟层,直接使用显卡驱动提供的函数,具有更高的性能。
https://www.opengl.org/sdk/libs/GLEW/
OpenGL EW源码下载: glew-1.11.0.zip (886.05 KB, 下载次数: 19)
Dll、链接库、头文件下载: glew-1.11.0-win32.zip (2.85 MB, 下载次数: 47)

如果要使用OpenGL EW,请把lib放到你的开发环境的lib文件夹(有32位和64位版本),然后把头文件放到你的开发环境的include文件夹的gl文件夹(如果是Mac,是opengl文件夹)。
然后在你的源码加上#include<GL/glew.h>就行了。切记前面不能包含<GL/gl.h>。

由于原始的glew32.dll导出的符号都指向函数指针,而VB则不能直接调用函数指针,如果你直接Declare Function...会出现Access Violation。因此我专门给VB写了它专用的DLL,叫“glew32vb.dll”
编写的过程倒是挺简单,用exeScope看glew32.dll看它的导出表,然后用Notepad++的块编辑制作了DEF文件。
最后借助查找替换做了一个asm文件,每个符号都是一句mov和一句jmp
虽然有一万多行代码,但是其实它完全是用自动的方式产生的(除了我拉了几下鼠标、按了几次Ctrl+C和Ctrl+V等各种操作以外。。)。
20141116054740.png
使用NASM编译,VC6的Link完成链接。
20141116054909.png
20141116054845.png
现在OpenGL EW的VB库已经可以离开原始的glew32.dll了,因为我给它使用了静态库glew32s.lib,这样你就不需要让glew32.dll和glew32vb.dll一起出现在你的程序文件夹了。
新的静态OpenGL EW for VB可以在这里下载。
BIN: glew32vb.dll (336 KB, 下载次数: 43)
SRC: glew32vb.7z (785.23 KB, 下载次数: 26, 售价: 10 个宅币)
有了它,你就可以用VB玩很高版本的OpenGL了。

本帖被以下淘专辑推荐:

回复

使用道具 举报

 楼主| 发表于 2014-11-15 21:37:39 | 显示全部楼层
咦?glew32vb.dll的导入表好像很简单,就是opengl.dll的三个函数:
  1. wglGetCurrentDC
  2. wglGetProcAddress
  3. glGetString
复制代码
明白了,原来它就是用这三个函数实现的,怪不得能取得显卡导出的函数呢,而且都是函数指针。
回复 赞! 靠!

使用道具 举报

 楼主| 发表于 2014-11-16 05:50:51 | 显示全部楼层
已经更新了链接,解决了BUG。
正准备做tlb
回复 赞! 靠!

使用道具 举报

发表于 2017-10-19 10:46:18 | 显示全部楼层
先来看看,感觉是救命稻草啊
回复 赞! 靠!

使用道具 举报

发表于 2017-11-7 08:07:40 | 显示全部楼层
收藏先慢慢消化
回复 赞! 靠!

使用道具 举报

发表于 2017-11-7 23:37:59 | 显示全部楼层
收藏先慢慢消化收藏先慢慢消化
回复 赞! 靠!

使用道具 举报

发表于 2018-2-5 12:09:36 | 显示全部楼层
谢谢高手分享,vb的代码怎么写呢?
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-12-22 11:24 , Processed in 0.041832 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表