查看: 2340|回复: 8

[已经解决] 请教像VA那样的自动载入字体在XP里怎么实现?

[复制链接]
梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
回帖
557
发表于 2014-6-20 13:33:42 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
VA有个Fonts文件夹,把字体文件放入其中就能自动载入了
但XP的不行,虽然有自动载入字体脚本,但只要路径变一变或者字体文件移动变更两下就会出bug、以及某些机器会失败
不知道VA是怎么实现的?XP的话有没有办法也想VA那样实现吗?
最近在研究XAS

老黄鸡

梦石
4
星屑
45739
在线时间
7952 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-6-20 17:37:54 | 显示全部楼层
紫苏的启动时获得句柄的dll是开源的,
夏娜也提供了播放器的源码,
你只要有vs,然后把dll源码部分的这一段
  1.     char buf[256], *pBuf = buf;
  2.     GetPrivateProfileString("Font", "names", "", buf, 256, szIniPath);
  3.     while(*pBuf) {
  4.         char *p;
  5.         for(p = pBuf; *p != 0 && *p != '|'; ++p);
  6.         if(*p) {
  7.             *p = 0;
  8.             ++p;
  9.         }
  10.         AddFontResourceEx(pBuf, FR_PRIVATE, 0);
  11.         pBuf = p;
  12.     }
复制代码
复制进去,编译生成就可以使用了。

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 认可答案

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
回帖
557
 楼主| 发表于 2014-6-20 19:00:24 | 显示全部楼层
本帖最后由 赛露休斯 于 2014-6-20 19:05 编辑
fux2 发表于 2014-6-20 17:37
紫苏的启动时获得句柄的dll是开源的,
夏娜也提供了播放器的源码,
你只要有vs,然后把dll源码部分的这一段 ...


这一段源码,复制到夏娜的播放器编译可以吗?还是必须要dll?
另外这段代码能不能弄成载入指定文件夹内的字体那样呢?
最近在研究XAS
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45739
在线时间
7952 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-6-20 19:06:09 | 显示全部楼层
赛露休斯 发表于 2014-6-20 19:00
这一段源码,复制到夏娜的播放器编译可以吗?还是必须要dll?
另外复制到哪个位置? ...


代码单独复制过去就可以了,如果你不需要紫苏dll 的其他功能。
在夏娜播放器里有步骤注释,步骤1设置RTP的前面加上这一段就行。
在这里你还可以去掉debug信息,还可以加密噗哟哟233
用法和紫苏dll一样,写在ini里,记得看紫苏dll的使用说明。
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
回帖
557
 楼主| 发表于 2014-6-20 19:09:57 | 显示全部楼层
本帖最后由 赛露休斯 于 2014-6-20 19:11 编辑
fux2 发表于 2014-6-20 19:06
代码单独复制过去就可以了,如果你不需要紫苏dll 的其他功能。
在夏娜播放器里有步骤注释,步骤1设置RTP ...


对了,字体这段代码能不能弄成载入指定文件夹内的字体那样子呢?
总觉得在ini里面编辑,玩家会随意修改
最近在研究XAS
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45739
在线时间
7952 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-6-20 19:13:48 | 显示全部楼层
赛露休斯 发表于 2014-6-20 19:09
对了,字体这段代码能不能弄成载入指定文件夹内的字体那样子呢?
总觉得在ini里面编辑,玩家会随意修改
...

核心不过是这个而已
  1. AddFontResourceEx(pBuf, FR_PRIVATE, 0);
复制代码
你自己遍历fonts文件夹得到字体文件名,赋给这个pbuf就行了。
然后,这里是RM的提问区,这么问偏题很厉害了。
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
回帖
557
 楼主| 发表于 2014-6-20 19:21:34 | 显示全部楼层
fux2 发表于 2014-6-20 19:13
核心不过是这个而已你自己遍历fonts文件夹得到字体文件名,赋给这个pbuf就行了。
然后,这里是RM的提问区 ...


对C完全外行呢,装VS一共才学过几天就被难倒了orz,连遍历文件夹也不会...能不能帮忙写一下遍历代码呢?
另外话说我在一些RGSS自动加载字体脚本里也有看到AddFontResourceEx这个,编译到exe里和直接写脚本有什么不同吗?
最近在研究XAS
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45739
在线时间
7952 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2014-6-20 19:31:45 | 显示全部楼层
赛露休斯 发表于 2014-6-20 19:21
对C完全外行呢,装VS一共才学过几天就被难倒了orz,连遍历文件夹也不会...能不能帮忙写一下遍历代码呢?
...

现在在用别人的机器,没有vs,这玩意太大了。
至于脚本无效的原因,我之前听人说过好像是某个操作只在启动时执行一次,
具体的记不清了,总之就是没用= =
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
167
在线时间
434 小时
注册时间
2009-1-1
回帖
557
 楼主| 发表于 2014-6-20 19:53:40 | 显示全部楼层
fux2 发表于 2014-6-20 19:31
现在在用别人的机器,没有vs,这玩意太大了。
至于脚本无效的原因,我之前听人说过好像是某个操作只在启 ...

原来是这样
刚刚百度“C++ 遍历文件夹”发现并不容易,等有vs的时候就拜托了哦~
顺便刚刚有提到了用这个可以加密?一般来说是怎样的思路呢?
最近在研究XAS
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部