64位Glew运行正常但不显示内容

artgolf 2018-03-17 09:10:26
大家好,很多年不发帖了。

我有一个用OpenGL开发的跨平台软件,在macOS和Windows上运行。

我的Windows开发环境:在苹果机上的VirtualBox虚拟机里安装的Windows 7旗舰版, VS 2010旗舰版,glew最新版,OpenGL用到2.0版的功能,用到顶点和面片着色器程序。

以前的Windows版软件是32位的,本来运行的好好的,用户突然提出要处理很大的3d模型,使用内存超出4G后崩溃,于是我试着用64位编译,编译很顺利,程序启动除了要找vcomp100.dll以外,没有其它错误,glew的各种API调用也都成功,但就是屏幕上什么东西也不显示,一片黑,其它功能正常,可以摸黑工作。

开始我以为是我的显卡驱动有Bug,让用户在他的机器上测试后,他的情况也是一样:32位的工作正常,64位的不显示内容。

看来不是显卡驱动的问题,否则不同的机器怎么都有同样的问题呢?是Window有Bug吗?怎么在网上搜不到多少帖子?

我现在能想到的解决方案有三个:
1. 不让用户处理大的模型,这个要求显然不合理。
2. 用Direct3D改写,但工作量大,代码不好维护。
3. 等待驱动程序升级或者Windows升级后问题自动消失,希望渺茫。

还有一个方法,是我哪里做错了什么,改正后问题就可以解决,这样当然最好啦。

哪位朋友有这方面的经验,请不吝赐教,我会不胜感激,谢谢。
...全文
364 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
artgolf 2018-03-17
  • 打赏
  • 举报
回复
这问题意外得到了解决,为了使用最新的FBX SDK,不得不升级到VS2012,重新编译后,居然问题消失了,太搞笑了吧?
CyberLogix 2018-03-17
  • 打赏
  • 举报
回复
代码贴出来可以看看,应该和64位驱动有关吧
artgolf 2018-03-17
  • 打赏
  • 举报
回复
进一步试验,简单的语句可以成功,比如设置清除颜色什么的,可以得到正确的结果。 又把int和float全部换成GLint和GLfloat,仍然不行,又不报任何错误。 同样的代码在macOS上是可以的,人家也是64位系统啊,所以,我也认为问题与64位驱动有关。 这问题无解了,结帖吧。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧