opengl-OpenGL绘制字体的问题:项目从32位改到64位后不能绘制

问题描述

OpenGL绘制字体的问题:项目从32位改到64位后不能绘制
/*以下是准备工作*/
HFONT hFont = CreateFont(30 0 0 0 FW_MEDIUM 0 0 0
ANSI_CHARSET OUT_DEFAULT_PRECIS CLIP_DEFAULT_PRECIS
DEFAULT_QUALITY DEFAULT_PITCH | FF_SWISS TEXT(""宋体""));
HFONT hOldFont = (HFONT)SelectObject(wglGetCurrentDC() hFont);
DeleteObject(hOldFont);
glColor3f(1.0f 0.0f 0.0f);
glRasterPos3f(txtpos.x txtpos.y txtpos.z);
int strlen = walllength.GetLength();
char *wall_lengh = new char[strlen + 1];
memset(wall_lengh 0 strlen + 1);

WideCharToMultiByte(CP_OEMCP NULL (LPCWSTR)walllength -1 NULL 0 NULL FALSE);WideCharToMultiByte(CP_OEMCP NULL (LPCWSTR)walllength -1 (LPSTR)wall_lengh strlen NULL FALSE);wall_lengh[strlen] = '';

GLDrawString(wall_lengh);

/*以下是绘制函数**********************************************************************************************/
void GLDrawString(const char* str) {
static int isFirstCall = 1;
static GLuint lists;
if (isFirstCall) { // 如果是第一次调用,执行初始化
// 为每一个ASCII字符产生一个显示列表
isFirstCall = 0;

    // 申请MAX_CHAR个连续的显示列表编号    lists = glGenLists(MAX_CHAR);    // 把每个字符的绘制命令都装到对应的显示列表中   //HDC c = wglGetCurrentDC();    wglUseFontBitmaps(wglGetCurrentDC() 0 MAX_CHAR lists);    /*glGetError();*/}// 调用每个字符对应的显示列表,绘制每个字符for (; *str != ''; ++str){    glCallList(lists + *str);}

}
/*以上是之前绘制字体的函数,只要传入char* str就可以绘制出来数字,比如“12345”,但是项目从32位改为64位以后就没法绘制了,我查了一下,发现是wglUseFontBitmaps(wglGetCurrentDC() 0 MAX_CHAR lists);返回0,有没有大神知道是为什么啊,小弟没分。。。。真的不好意思*/

时间: 2024-08-06 20:19:03

opengl-OpenGL绘制字体的问题:项目从32位改到64位后不能绘制的相关文章

c++-在VS.net2003中用C++写的项目,从32位迁移到64位机器上后遇到引用第三方库的问题

问题描述 在VS.net2003中用C++写的项目,从32位迁移到64位机器上后遇到引用第三方库的问题 在VS.net2003中用C++写的项目,从32位迁移到64位机器上后,原来引用的SDK/DXSDK第三方库中头文件包含VS.net2003中的Winsock2.h文件的路径错误,应该去"C:/ProgramFiles (x86)/""下去寻呼,但是他还去""C:/ProgramFiles/""路径去寻找,这个是什么造成的?怎么解决啊

ubuntu 64位android项目报错的解决方案,打开64位 Ubuntu 的32位支持功能

ubuntu的64位下的android环境,说实话,还真得费点精力了,解决一个问题,又出来一个新问题. 小编昨天刚好不容易将android的环境搭建好了,这不,刚建了个项目,直接就报错,下面是罗列出的几条: 1. libstdc++.so.6:cannot open shared object file:no such file or directory 2. Description Resource Path Location Type Error executing aapt: Cannot

在64位的环境中使用VS建立Web项目进行Oracle连接需要注意WebDev是32位的

我们平时使用的都是32位的机器进行开发,装的都是32位的软件,但是我们的服务器一般都是64位的,所以有时也需要在64位的环境下装一个VS调试程序.最近遇到的一个问题就是一个同事换了一个电脑,用的是X64的Windows 2008作为操作系统,要进行Oracle的数据库连接,所以也装了64位的Oracle客户端.如果是控制应用项目或者WinForm项目可以正常连接Oracle,但是Web项目在程序中打开Oracle连接时,系统抛出了异常: 尝试加载 Oracle 客户端库时引发 BadImageF

OpenGL在64位计算机上无法以bmp方式拷贝绘制的图形?

问题描述 OpenGL在64位计算机上无法以bmp方式拷贝绘制的图形? 大家好, 本人项目中采用VS2013+OpenGL绘图并对图形进行拷贝,测试程序为一个基于对话框的工程,在主对话框中有一个自定义控件用于绘图,该控件旁边有一个按钮控件Copy,其响应函数OnBnClickedButtonCopy()中对自定义控件中的图形做拷贝. 自定义控件CGraphCtrl中的OnPaint函数如下: void CGraphCtrl::OnPaint() { CPaintDC dc(this); // d

vs2015 异常-在vs2015上使用opengl,打开之前vs2008的项目运行不了

问题描述 在vs2015上使用opengl,打开之前vs2008的项目运行不了 安装网上说法,禁用其中之一也不行. 解决方案 http://zhidao.baidu.com/link?url=RWiToRKnBxQ2kIXTd7XqaqbugHv9syH5oTIFOz7YRU4pXlOsEcg97_BGOjr_QU5Wh266YEXDe_PP-caz1MWOyvUrCiL5vkIsIAct1HraGv7

64位系统运行nehe opengl

问题描述 64位系统运行nehe opengl 我按照网上下载的nehe sdk进行配置以后,运行以后不出现opengl的窗口. 但使用网上另外一段opengl代码就运行成功了,不知道是不是因为64位系统的问题,用的是systemwow64文件夹存放dll. 解决方案 #include "opengl.h" #include "view.h" using namespace NeHe; // the view class static View view; stat

chrome浏览器64位部分网页字体无法显示怎么办

  chrome浏览器64位部分网页字体无法显示解决办法:1:在chrome浏览器输入栏输入"chrome://flags " 2:按住"ctrl"+"F" ,会有查找输入框.输入"DirectWrite ..."就可以看到要找的"DirectWrite Windows"禁止该项就解决问题了.

Asp.Net MVC3.0如何项目部署到Win7 64位系统_实用技巧

之前一直是通过Visual Studio直接F5来运行自己编写的项目或者小程序,很少通过部署发布到IIS上面,于是自己便在自己的笔记本上进行测试,结果还真是发现了不少问题,于是自己重新通过虚机程序进行全裸的新一次部署实践.部署进程第一步:现在Win7 64位操作系统上安装IIS,通过控制面板位置即可开启安装.如下图所示: 勾选后点击确定进行安装即可.第二步:IIS安装成功后,因为我的程序是通过VS2010开发的,而且是Asp.Net MVC3.0的程序,而且我的Win7 64位虚机也是新安装的,

vs2013 vs2010-32的VS2010编写的项目,经过64位的VS2013编译,报:调用的目标发生了异常。

问题描述 32的VS2010编写的项目,经过64位的VS2013编译,报:调用的目标发生了异常. 项目是一直用的VS2010 , 启动调试先加载EAS的客户端,然后再管理开发的模块. 新安装了VS2013, 编译一遍程序以后在启动报:调用的目标发生了异常. 关机重启,重新签出都会是这个问题, 自我分析是VS2013的环境和VS2010的环境发生了冲突, 目前机器上两个都存在. 求解大神怎么解决, 在线等啊, 谢谢.不知道怎么插入图片,下面是异常信息:{""调用的目标发生了异常.&quo