BCG库的一个bug[通俗易懂]

BCG库的一个bug[通俗易懂]作者:朱金灿来源:http://blog.csdn.net/clever101            同事在使用BCG库图表组件(BCG库的版本为BCGCBPRO1510)时遇到一个问题,就是图表标题总是出现乱码,具体如下图:我查看了一下BCG库的源码,发现BCG库的绘制接口是采用D2D的接口。D2D是微软推出的一个二维绘制的com组件,只支持unicode字符,非unicode字符需要转换

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用



作者:朱金灿

来源:http://blog.csdn.net/clever101

 

            同事在使用BCG库图表组件(BCG库的版本为BCGCBPRO1510)时遇到一个问题,就是图表标题总是出现乱码,具体如下图:

BCG库的一个bug[通俗易懂]

我查看了一下BCG库的源码,发现BCG库的绘制接口是采用D2D的接口。D2D是微软推出的一个二维绘制的com组件,只支持unicode字符,非unicode字符需要转换为unicode字符。其中绘制标题字符的代码如下:

USES_CONVERSION;CStringW wStr = T2CW(strText); // strText为图表标题m_pRenderTarget->DrawText(wStr,strText.GetLength(),pWriteTextFormat, &rectD2D, pD2DBrush, options);

这段代码是有问题的,问题在于strText转化为unicode字符wStr后,strText的长度并不等于wStr,因此DrawText绘制wStr使用的却是strText的长度,这样是明显不对的,会出现读取内存越界从而读到的是乱码。还有一个隐含的错误是假如strText本身就是unicode字符,那么它就不需要转换的。因此需要把这句代码作如下修改:

#ifndef UNICODE 

USES_CONVERSION;
CStringW wStr = T2CW(strText);
m_pRenderTarget->DrawText(wStr,wStr.GetLength(),pWriteTextFormat, &rectD2D, pD2DBrush, options);

#else

m_pRenderTarget->DrawText(strText,strText.GetLength(),pWriteTextFormat, &rectD2D, pD2DBrush, options);

#endif

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184533.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • QVBoxLayout的使用

    QVBoxLayout的使用#include<QApplication>#include<QPushButton>#include<QWidget>#include<QMenuBar>#include<QStatusBar>#include<QVBoxLayout>#include<QTextEdit>#include&amp

    2022年6月17日
    37
  • 梯度下降法与随机梯度下降法[通俗易懂]

    梯度下降法与随机梯度下降法[通俗易懂]梯度下降法与随机梯度下降法

    2025年10月21日
    5
  • hg261gu光猫说明书_hg2201t光猫设置教程

    hg261gu光猫说明书_hg2201t光猫设置教程电信光纤友华PT921G光猫激活成功教程关闭自带路由改桥接拨号教程电信光猫质量烂就算了,最受不了它自带的路由还做了手脚,导致VPN用不了。不让看AV就算了,打个外服游戏总可以吧?不知道为啥,网上关于光猫改桥接的教程基本没有,搜出来的也说得很不清楚,是和谐了还是什么原因不得而知。本人也是自己自己试出来的,其实修改难度并不大,只不过那个界面搞的特奇葩特不友好罢了。废话不多说,步骤如下:

    2022年10月8日
    3
  • linux平台 ora 12154,ORA-12154 TNS 无法解析指定的连接标识符

    linux平台 ora 12154,ORA-12154 TNS 无法解析指定的连接标识符ORA-12154TNS无法解析指定的连接标识符[日期:2011-12-27]来源:Linux社区作者:love_UbuntuORA-12154TNS无法解析指定的连接标识符.今天数据库突然连接时报这个错误,plsql连接不上,应用程序连接不上,但是sql可以连上。到网上找了半天,也改了半天。其实我的listener.ora文件是一直没有动的。网上的人说改了之后重启服务就可以。目…

    2022年7月24日
    12
  • SPPnet论文总结

    SPPnet论文总结小菜看了SPPNet这篇论文之后,也是参考了前人的博客,结合自己的一些观点写了这篇论文总结。这里参考的连接如下:[http://blog.csdn.net/u013078356/article/details/50865183]论文:《SpatialPyramidPoolinginDeepConvolutionalNetwo

    2022年6月7日
    31
  • 网页背景音乐代码

    网页背景音乐代码将这段代码插入到您的之间当您打开网站时即可听到背景音乐:这种当网页最小化之后,音乐会消失网页背景音乐的代码:1.mid表示音效文件上面的网页背景音乐代码可以加入FLASH动画的绝对地址(或相对地

    2022年7月2日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号