琵琶行论坛

 找回密码
 注册
每日签到论坛FTP使用教学领取红包(开放!)论坛FTP搜索引擎
查看: 1385|回复: 9

关于fba的中文路径问题

 关闭 [复制链接]

签到天数: 1 天

[LV.1]初来乍到

发表于 2005-2-5 08:08:25 | 显示全部楼层 |阅读模式
大家也许已经发现fba的UNICODE版本不支持中文路径,而fba的ANSI版本却支持,我询问了fba team的Jan,他的回答是:这样是为了将两个版本的cfg文件同意引起的,解决的办法也很简单,就是只要将cfg文件以bin格式保存就可以解决UNICODE版本的问题,以下是解决办法:
cona.cpp
修改里面的两处:
if ((h = _tfopen(szConfig, _T("rt"))) == NULL) {
                return 1;
        }

修改为:
if ((h = _tfopen(szConfig, _T("rb"))) == NULL) {
                return 1;
        }


if ((h = _tfopen(szConfig, _T("wt"))) == NULL) {
                return 1;
        }

修改为:
if ((h = _tfopen(szConfig, _T("wb"))) == NULL) {
                return 1;
        }

PS:编译后运行时请删除掉以前的cfg文件!

[ Last edited by emufan on 2005-2-5 at 12:41 ]

签到天数: 1 天

[LV.1]初来乍到

 楼主| 发表于 2005-2-5 08:18:30 | 显示全部楼层
下面的文件是fba的vs2003的工程文件,将它给src打补丁后可以在vs2003下编译!运行的方法为:
先解压到源文件的src目录,然后在DOS方式下,进入src目录,运行以下命令:
patch -p1 <fba_vs2003.diff

patch.exe文件可以到mame.net下载。
需要注意的问题:
1.必须安装directx9.0 sdk,并将其头文件和库文件目录告诉vs2003;
2.必须将nasm的目录告诉vs2003;
3.没有用到perl;
4.可以选择编译fba(ANSI)或fba(UNICODE)及其debug版本
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2005-2-5 12:02:03 | 显示全部楼层
嘿嘿,这个办法前几天被我蒙出来了,我还以为是个笨办法呢,
曾一度寻找更好的解决办法,原来作者也这么说呀。

应该是修改cona.cpp吧,cong.cpp里面是游戏的配置。没有路径信息。

见下面贴子的19楼:
http://bbs.jj.jx.cn/viewthread.p ... ghlight=&page=2
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

发表于 2005-2-5 12:10:54 | 显示全部楼层
回复 支持 反对

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

 楼主| 发表于 2005-2-5 12:31:40 | 显示全部楼层
是的,的确是cona.cpp,已经将上面的贴子更正!早上发帖子时没有仔细看。

[ Last edited by emufan on 2005-2-5 at 12:45 ]
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2005-2-5 13:04:48 | 显示全部楼层
是否可以用VS2003的IDE编译,还是要在CMD下?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2005-2-5 22:05:59 | 显示全部楼层

终于找到正解了,[引用] pigcat

pigcat
Junior Member


Join Date: Feb 2005
Posts: 1
  

--------------------------------------------------------------------------------

open src/burner/win32/main.cpp

---------------
find
#include "burner.h"

add after

#include <locale.h>

---------------
find
// Main program entry point
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, LPSTR lpCmdLine, int nShowCmd)
{

add after
setlocale(LC_ALL, ("Chinese_China"));

-------------

咳,英文不好,不过这里是有些国人的,在琵琶行那边看到一帮人讨论这个问题很久也没得要领,不过那边禁止注 册了,看他们郁闷的不行,我是想告诉他们该怎么做也告不成。

这个问题是由于使用了_UNICODE定义,编译时的c-runtime库就会使用fprintf这类函数的unicode版本,所以在使用这些函数之前,要先用s etlocale设置本地化标记,才能使这些unicode版本的函数正常处理多字节.
回复 支持 反对

使用道具 举报

签到天数: 565 天

[LV.9]以坛为家II

发表于 2005-2-5 22:30:33 | 显示全部楼层
大家多多研究技术!!!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2005-2-7 20:36:12 | 显示全部楼层
setlocale(LC_ALL, ("Chinese_China"));

这个函数的第二个参数也可以用一个api获得,具体名字记不得了,翻一下msdn查selocale肯定能找到,好象叫getuser什么什么的。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2005-2-8 02:34:59 | 显示全部楼层
1.必须安装directx9.0 sdk,并将其头文件和库文件目录告诉vs2003;
2.必须将nasm的目录告诉vs2003;

不会做

vs的工程文件是如何建立的?手工按照makefile写?
楼主可否写个使用vs6或vs2003编译的简明教程
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|琵琶行论坛 ( 赣ICP备12000882号 )

GMT+8, 2021-9-27 22:07 , Processed in 0.018654 second(s), 9 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表