过期主题 该主题因在两个月内没有任何回复而自动关闭。
如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
关闭主题
第4页,共4页:  1  2  3  4  
主题工具  
LunaX 帅哥
LunaX 的头像
极客II
级别:4 | 在线时长:146小时 | 升级还需:4小时级别:4 | 在线时长:146小时 | 升级还需:4小时级别:4 | 在线时长:146小时 | 升级还需:4小时级别:4 | 在线时长:146小时 | 升级还需:4小时
注册日期: 2008-04
帖子: 70
致谢: 2
2009-08-19, 15:03:55 #61 | TOP
重新投入GDI++的怀抱里。。。呵呵。。。
回复时引用此帖
bana
bana 的头像
极客II
级别:13 | 在线时长:959小时 | 升级还需:91小时级别:13 | 在线时长:959小时 | 升级还需:91小时级别:13 | 在线时长:959小时 | 升级还需:91小时
注册日期: 2007-09
帖子: 237
致谢: 161
2009-08-20, 08:39:19 #62 | TOP
我下载了 支持个!
回复时引用此帖
dipplum 帅哥
极客II
级别:3 | 在线时长:99小时 | 升级还需:1小时级别:3 | 在线时长:99小时 | 升级还需:1小时级别:3 | 在线时长:99小时 | 升级还需:1小时
注册日期: 2008-09
帖子: 72
致谢: 17
2009-08-26, 15:32:04 #63 | TOP
请教楼主, GDI+0927和GDI++0850的先后关系?
回复时引用此帖
CrendKing
CrendKing 的头像
荣誉极客
级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时
注册日期: 2005-12
帖子: 609
致谢: 306
2009-08-26, 16:04:34 #64 | TOP
0927 是官方网站上的最后一个版本,为 2006年9月27日上传。0850 是 GDI++ Uploader 上最后一个 FreeType 版,2008年3月17日上传,描述为“ 0787 + IVS対応化”。此处的 0787 应该指的是 GDI++ Uploader 上档案的 ID,不过 0787 似乎已经无法下载了。0850 的问题是,已经在编译时包含了 FreeType 的代码,而不会在读取外部的 freetype.dll。也就是说,要使用新的 FreeType,必须重新编译 gdi++。我个人不喜欢这种紧耦合的方式,毕竟 GDI++ 还是使用的 FreeType 的渲染引擎。这样一来,0927 就是最后一个不包含 FreeType 的版本了。
回复时引用此帖
dipplum 帅哥
极客II
级别:3 | 在线时长:99小时 | 升级还需:1小时级别:3 | 在线时长:99小时 | 升级还需:1小时级别:3 | 在线时长:99小时 | 升级还需:1小时
注册日期: 2008-09
帖子: 72
致谢: 17
2009-08-26, 16:40:39 #65 | TOP
感谢进行科普, 感觉gdi++的版本好乱, 没有一个统一的规范.

我觉得0850的源码可以编译成动态链接freetype.dll的形式, 只是zip包里自带的gdi++.dll已经包含freetype内容.

另外, 一般来说dll是不支持直接替换二进制文件这种升级方式的. 理论上来说, 每次freetype.dll的升级(甚至修改编译参数重新编译), gdi++.dll都必须重新编译链接到新的freetype.dll. 否则, 很容易crash的.

我不清楚FreeType是否专门针对dll升级做过考虑, 总之, 一般都不太建议只替换一个dll的升级方式.
回复时引用此帖
fonlan
fonlan 的头像
极客III
级别:10 | 在线时长:553小时 | 升级还需:107小时级别:10 | 在线时长:553小时 | 升级还需:107小时级别:10 | 在线时长:553小时 | 升级还需:107小时级别:10 | 在线时长:553小时 | 升级还需:107小时级别:10 | 在线时长:553小时 | 升级还需:107小时
注册日期: 2006-02
帖子: 403
致谢: 416
2009-08-26, 16:55:48 #66 | TOP
GDI++安装程序中所使用的Freetype.dll都是网友针对GDI++所编译的,所以还是相对比较稳定的。
回复时引用此帖
CrendKing
CrendKing 的头像
荣誉极客
级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时
注册日期: 2005-12
帖子: 609
致谢: 306
2009-08-27, 10:32:54 #67 | TOP
如果原库的接口不变,而新的版本只是旧版的 bug 修正版,我认为直接升级一般是可行的。如果是功能有增减的新版本则不推荐。FreeType 的这个情况从 ChangeLog 来看两者都有,不过恐怕 GDI++ 能用到的函数基本都很稳定了。

FYI, 找到 0787 了,
回复时引用此帖
dipplum 帅哥
极客II
级别:3 | 在线时长:99小时 | 升级还需:1小时级别:3 | 在线时长:99小时 | 升级还需:1小时级别:3 | 在线时长:99小时 | 升级还需:1小时
注册日期: 2008-09
帖子: 72
致谢: 17
2009-08-27, 15:54:01 #68 | TOP
我说的恰恰就是这个,就算函数接口不变,直接升级dll危险也很大。除非你做过修正代码的review,否则无法确认。而且一旦出错,往往是很严重的内存错。

举个例子说明它的严重性好了。假设freetype头文件里有一个结构,有一个结构的初始化函数
再假设你在gdi++的代码里面这么写
在编译gdi++的时候,变量a占用4个字节,后面是变量i也是4个字节。
如果freetype升级给struct A增加一个变量,重新编译发布dll
这时候,在freetype的dll里,已经认为A是8个字节了,而你的gdi++代码还认为A是4个字节,init_A就会把变量i的值给冲掉。
这里面,函数接口一点变化都没有。即使是修改bug,甚至一行代码不改,只是换个编译参数,都有可能改变结构体的size。
而且这样的内存隐患,极其容易导致不可重现的错误。所以,说gdi++的freetype版不稳定,说不定就和gdi++没有针对所用的freetype重新编译有关。
一般来说,只有COM组件这种东西,才能有效的支持二进制级别的替换。这就说远了。
啰嗦了一点,我的大意还是,为了保险起见,不能只更新freetype.dll,而是绝对有必要重新编译下gdi++。除非,freetype项目是按照COM的标准开发的,那自然另当别论。
回复时引用此帖
CrendKing
CrendKing 的头像
荣誉极客
级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时级别:10 | 在线时长:608小时 | 升级还需:52小时
注册日期: 2005-12
帖子: 609
致谢: 306
2009-08-27, 17:57:52 #69 | TOP
赞同。这也是为什么要重启 GDI++ 的原因之一。为了跟上 FreeType 的更新进度,至少要在每次 FreeType 更新时,检查 GDI++ 用到的所有 FreeType 相关代码。如果有实质性的改变,必须修改代码才能适应新的版本。
回复时引用此帖
yuwenhantao
yuwenhantao 的头像
极客II
级别:5 | 在线时长:172小时 | 升级还需:38小时级别:5 | 在线时长:172小时 | 升级还需:38小时级别:5 | 在线时长:172小时 | 升级还需:38小时级别:5 | 在线时长:172小时 | 升级还需:38小时级别:5 | 在线时长:172小时 | 升级还需:38小时
注册日期: 2004-10
来自: NanJing
帖子: 131
致谢: 22
2009-09-14, 07:07:52 #70 | TOP
但我使用后有2个地方很奇怪

我的是VISTA,是通过注册表改系统字体的

这是我在互助区发的帖子:



回复时引用此帖
关闭主题 « 上一主题 - 字体渲染 - 下一主题 »
第4页,共4页:  1  2  3  4  
过期主题 该主题因在两个月内没有任何回复而自动关闭。
如果您还对该主题感兴趣或者想参与对此主题的讨论,请您重新发表一篇相关的新主题。
主题工具
发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码

论坛跳转:
Copyright ©2003-2014, THEMEX.NET [湘ICP备14009485号]
Powered by vBulletin® v3.8.3 ©Jelsoft Enterprises Ltd.
所有时间均为北京时间。现在的时间是 07:42:00