<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tommy's Blog &#187; Development</title>
	<atom:link href="http://tommy.net.cn/tag/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://tommy.net.cn</link>
	<description>Tommy 的自留地</description>
	<lastBuildDate>Mon, 27 Dec 2010 08:57:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>用 VS2008 编译 ucl-1.03 的问题</title>
		<link>http://tommy.net.cn/2008/09/02/vs2008-vs-ucl-103/</link>
		<comments>http://tommy.net.cn/2008/09/02/vs2008-vs-ucl-103/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 15:56:34 +0000</pubDate>
		<dc:creator>Tommy</dc:creator>
				<category><![CDATA[程序开发]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[UCL]]></category>
		<category><![CDATA[VS2008]]></category>

		<guid isPermaLink="false">http://tommy.net.cn/?p=46</guid>
		<description><![CDATA[今天在用 VS2008 编译 SlOnline 的代码的时候，发现 ucl-1.03 的库不能编译了。用 OopsWare 已经编译好的版本就可以，自己编译就报错。提示的错误为 error C3163: '_vsnprintf': attributes inconsistent with previous declaration OopsWare 使用的版本是 VS2008 Express Edition，我用的是 VS2008 Team Edition。感觉问题就是出在这里了。因为之前我用 VS2005 编译的时候也没有类似的问题。 最后查资料，应该是宏定义所导致的问题。找到 ucl-1.03 里面的 acc/acc-auto.h 这个文件，将源代码中第 436 行的代码 # define vsnprintf _vsnprintf 修改为 #if (_MSC_VER &#60; 1500) # define vsnprintf _vsnprintf #endif 其中，_MSC_VER 表示 VC 编译器的版本号，1500 对应的是 VS2008。修改后，重新编译，问题解决！ 2008-09-07 [...]]]></description>
			<content:encoded><![CDATA[<p>今天在用 VS2008 编译 SlOnline 的代码的时候，发现 <a title="UCL data compression library" href="http://www.oberhumer.com/opensource/ucl/" target="_blank">ucl-1.03</a> 的库不能编译了。用 OopsWare 已经编译好的版本就可以，自己编译就报错。提示的错误为</p>
<p><code>error C3163: '_vsnprintf': attributes inconsistent with previous declaration</code></p>
<p>OopsWare 使用的版本是 VS2008 Express Edition，我用的是 VS2008 Team Edition。感觉问题就是出在这里了。因为之前我用 VS2005 编译的时候也没有类似的问题。</p>
<p>最后查资料，应该是宏定义所导致的问题。找到 ucl-1.03 里面的 <strong>acc/acc-auto.h</strong> 这个文件，将源代码中第 436 行的代码</p>
<p><code>#    define vsnprintf _vsnprintf</code></p>
<p>修改为</p>
<p><code>#if (_MSC_VER &lt; 1500)<br />
#    define vsnprintf _vsnprintf<br />
#endif<br />
</code></p>
<p>其中，_MSC_VER 表示 VC 编译器的版本号，1500 对应的是 VS2008。修改后，重新编译，问题解决！</p>
<p>2008-09-07 更新：</p>
<p>OopsWare 的 VC2008 Express 也有这个问题，不过他是通过修改 VC 自带的头文件来解决的</p>
]]></content:encoded>
			<wfw:commentRss>http://tommy.net.cn/2008/09/02/vs2008-vs-ucl-103/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>将 YoMax 移植到 Linux 平台</title>
		<link>http://tommy.net.cn/2008/08/20/porting-yomax-to-linux-platform/</link>
		<comments>http://tommy.net.cn/2008/08/20/porting-yomax-to-linux-platform/#comments</comments>
		<pubDate>Wed, 20 Aug 2008 08:55:11 +0000</pubDate>
		<dc:creator>Tommy</dc:creator>
				<category><![CDATA[程序开发]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[DJMax]]></category>
		<category><![CDATA[Hardy]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Porting]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[YoMax]]></category>

		<guid isPermaLink="false">http://tommy.net.cn/?p=36</guid>
		<description><![CDATA[今天把 YoMax 移植到 Linux 平台了，还算顺利，一切都进行的不错。感觉很好，很开心。在 Linux 下面跑的速度很快，效果很好。 其中有几个地方修改了一下： 1）_strnicmp，在 Linux 的标准 C 库里面没有这个函数，用 strncasecmp 替换就可以了 2）_mkdir，同样，Linux 下的 C 库也没有这个函数，需要使用 mkdir。需要用到头文件 &#60;sys/stat.h&#62;，而且还要设置权限，跟 Windows 平台下不大一样。详细的使用说明，可以参考 GNU C Library 手册中创建目录部分的内容。 3）还有就是简单的类型定义之类的细节不同了，以及 main 入口函数的声明不大一样 具体的参数和环境： Windows 平台 Windows XP with Service Pack 3 Visual Studio 2005 with Service Pack 1 Linux 平台 Ubuntu 8.04.1 (Hardy Heron) with 2.6.24-19-generic g++ [...]]]></description>
			<content:encoded><![CDATA[<p>今天把 YoMax 移植到 Linux 平台了，还算顺利，一切都进行的不错。感觉很好，很开心。在 Linux 下面跑的速度很快，效果很好。</p>
<p>其中有几个地方修改了一下：</p>
<p>1）_strnicmp，在 Linux 的标准 C 库里面没有这个函数，用 strncasecmp 替换就可以了</p>
<p>2）_mkdir，同样，Linux 下的 C 库也没有这个函数，需要使用 mkdir。需要用到头文件 &lt;sys/stat.h&gt;，而且还要设置权限，跟 Windows 平台下不大一样。详细的使用说明，可以参考 <a title="The GNU C Library" href="http://www.gnu.org/software/libc/manual/" target="_blank">GNU C Library 手册</a>中<a title="Creating Directories" href="http://www.gnu.org/software/libc/manual/html_node/Creating-Directories.html" target="_blank">创建目录</a>部分的内容。</p>
<p>3）还有就是简单的类型定义之类的细节不同了，以及 main 入口函数的声明不大一样</p>
<p>具体的参数和环境：</p>
<ul>
<li>Windows 平台</li>
</ul>
<ol>
<li>
<ul>
<li>Windows XP with Service Pack 3</li>
<li>Visual Studio 2005 with Service Pack 1</li>
</ul>
</li>
</ol>
<ul>
<li>Linux 平台</li>
</ul>
<ol>
<li>
<ul>
<li>Ubuntu 8.04.1 (Hardy Heron) with 2.6.24-19-generic</li>
<li>g++ v4.2.3 (Ubuntu 4.2.3-2ubuntu7)</li>
</ul>
</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://tommy.net.cn/2008/08/20/porting-yomax-to-linux-platform/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>YoMax v0.1.0 Ready!</title>
		<link>http://tommy.net.cn/2008/08/12/yomax-v010-ready/</link>
		<comments>http://tommy.net.cn/2008/08/12/yomax-v010-ready/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 14:42:12 +0000</pubDate>
		<dc:creator>Tommy</dc:creator>
				<category><![CDATA[程序开发]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[DJMax]]></category>
		<category><![CDATA[PAK]]></category>
		<category><![CDATA[YoMax]]></category>

		<guid isPermaLink="false">http://tommy.net.cn/?p=24</guid>
		<description><![CDATA[经过“艰苦卓绝”地奋战，终于完成了 YoMax 第一个版本。其实看到“艰苦卓绝”几个字，还加了引号，就知道其实并不是那么难的。只是将以前的代码整理了一下，然后重新用 C++ 封装了一下。功能也与原来的一模一样，唯一不同的是，在做 YoMax 的过程中，更加清晰地了解了 DJMax Pak 文件的结构，同时形成了一份简单的文件格式的说明文档。 接下来正在考虑做的事情： 实现跨平台支持，其实也就是支持 Linux 而已，如果自己用的话，应该是 Ubuntu 吧。 将 Dump 出来的几个二进制文件反向工程，了解真正的解包过程。估计这个应该会是很漫长的一个过程，估计要持续很长一段时间吧。 希望不久的将来能看到 YoMax v0.2.0，因为很多自己写的小工具都是到了 v0.0.1 或者 v0.1.0 就没有下文了。XD 2009-05-26 更新： 由于原来的 PakExtract 存在很多问题，所以，现在将主要更新 YoMax。另外由于很不幸的，以前的 YoMax 的代码找不到了，所以只好重写了代码。为了保证与以前版本不冲突，所以将版本号定为 v0.1a，其中 a 表示 alpha 版本，也就是极其不稳定的。呵呵，欢迎大家反馈问题。 下载 YoMax v0.1a]]></description>
			<content:encoded><![CDATA[<p>经过“艰苦卓绝”地奋战，终于完成了 YoMax 第一个版本。其实看到“艰苦卓绝”几个字，还加了引号，就知道其实并不是那么难的。只是将以前的代码整理了一下，然后重新用 C++ 封装了一下。功能也与原来的一模一样，唯一不同的是，在做 YoMax 的过程中，更加清晰地了解了 DJMax Pak 文件的结构，同时形成了一份简单的文件格式的说明文档。</p>
<p>接下来正在考虑做的事情：</p>
<ol>
<li>实现跨平台支持，其实也就是支持 Linux 而已，如果自己用的话，应该是 Ubuntu 吧。</li>
<li>将 Dump 出来的几个二进制文件反向工程，了解真正的解包过程。估计这个应该会是很漫长的一个过程，估计要持续很长一段时间吧。</li>
</ol>
<p>希望不久的将来能看到 YoMax v0.2.0，因为很多自己写的小工具都是到了 v0.0.1 或者 v0.1.0 就没有下文了。XD</p>
<p><strong>2009-05-26 更新：</strong></p>
<p>由于原来的 PakExtract 存在很多问题，所以，现在将主要更新 YoMax。另外由于很不幸的，以前的 YoMax 的代码找不到了，所以只好重写了代码。为了保证与以前版本不冲突，所以将版本号定为 v0.1a，其中 a 表示 alpha 版本，也就是极其不稳定的。呵呵，欢迎大家反馈问题。</p>
<p>下载 <a href="http://tommy.net.cn/wp-content/uploads/2009/05/yomax_v01a.rar">YoMax v0.1a</a><a href="http://tommy.net.cn/wp-content/uploads/2008/08/yomax_v01a.rar"><br />
</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tommy.net.cn/2008/08/12/yomax-v010-ready/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>ShiningLore Online&#8217;s SOX</title>
		<link>http://tommy.net.cn/2008/07/31/shininglore-onlines-sox/</link>
		<comments>http://tommy.net.cn/2008/07/31/shininglore-onlines-sox/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 15:30:31 +0000</pubDate>
		<dc:creator>Tommy</dc:creator>
				<category><![CDATA[程序开发]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[ShiningLore]]></category>
		<category><![CDATA[SOX]]></category>

		<guid isPermaLink="false">http://tommy.net.cn/?p=7</guid>
		<description><![CDATA[SOX 是 ShiningLore Onlie（中文官方运营的时候叫做天使）中一种类似简单数据库的东西，它里面保存了各种物品的描述，任务的对话，NPC名称等等的重要信息。 前几天跟 ColdBird 聊天的时候，他让我帮忙翻译一些中文，主要是游戏中一些任务的脚本。后来我就介绍 Tissue 给他认识了。Tissue 也很快就答应了，真的很感谢她的帮忙，虽然不是帮我的忙，但是还是要多谢一下，辛苦了。 于是乎故事就发生在 Tissue 接了这个我认为不可能的任务之后……她使用的工具应该是之前 Lily 写的一个图形化的 SLSoxEditor。这个工具在编辑的时候还是很方便的，但是在作为翻译工具的时候就有点麻烦了。用户必须要把翻译的内容先复制到记事本，翻译后再重新复制回去。所以就导致到翻译效率很低，速度很慢。本来我之前有写过类似的程序，可以直接给 Tissue 用的，但是因为之前一些数据备份的工作没做好，导致数据都丢失了，囧rz。于是就萌发了再重新写一个小工具的想法。 说做就做，马上行动！因为鄙人比较懒，所以，嘿嘿，先找救兵。看到 Athena 跟 Lily 在线，就很“厚颜无耻”地问他们要 SOX 文件的结构（其实之前我自己有分析过的，只是不想重复劳动而已，表拍砖……）。没想到 Athena 同学直接把参考代码发给我了，太感动了。简单的看了一下 Athena 的代码，大概就想起来了。然后就有了现在这个叫做 SOX 的小工具。 SOX 可以把 SOX 后缀的文件转换成带制表符的 TXT（文本）文件，并且可以用 Excel 打开编辑。修改后保存后，再运行一次 SOX，就可以转换回 SOX 文件。经过测试，可以正常的转换全部 SOX 文件，除了一个叫 CONVERSATION.SOX 的家伙。后来跟踪看了一下，估计跟浮点数有关，但由于它跟要翻译的东西没有太大关系，所以就先不管它了，让它自生自灭吧。Hoho～]]></description>
			<content:encoded><![CDATA[<p>SOX 是 ShiningLore Onlie（中文官方运营的时候叫做天使）中一种类似简单数据库的东西，它里面保存了各种物品的描述，任务的对话，NPC名称等等的重要信息。</p>
<p>前几天跟 ColdBird 聊天的时候，他让我帮忙翻译一些中文，主要是游戏中一些任务的脚本。后来我就介绍 Tissue 给他认识了。Tissue 也很快就答应了，真的很感谢她的帮忙，虽然不是帮我的忙，但是还是要多谢一下，辛苦了。</p>
<p>于是乎故事就发生在 Tissue 接了这个我认为不可能的任务之后……她使用的工具应该是之前 Lily 写的一个图形化的 SLSoxEditor。这个工具在编辑的时候还是很方便的，但是在作为翻译工具的时候就有点麻烦了。用户必须要把翻译的内容先复制到记事本，翻译后再重新复制回去。所以就导致到翻译效率很低，速度很慢。本来我之前有写过类似的程序，可以直接给 Tissue 用的，但是因为之前一些数据备份的工作没做好，导致数据都丢失了，囧rz。于是就萌发了再重新写一个小工具的想法。</p>
<p>说做就做，马上行动！因为鄙人比较懒，所以，嘿嘿，先找救兵。看到 Athena 跟 Lily 在线，就很“厚颜无耻”地问他们要 SOX 文件的结构（其实之前我自己有分析过的，只是不想重复劳动而已，表拍砖……）。没想到 Athena 同学直接把参考代码发给我了，太感动了。简单的看了一下 Athena 的代码，大概就想起来了。然后就有了现在这个叫做 SOX 的小工具。</p>
<p>SOX 可以把 SOX 后缀的文件转换成带制表符的 TXT（文本）文件，并且可以用 Excel 打开编辑。修改后保存后，再运行一次 SOX，就可以转换回 SOX 文件。经过测试，可以正常的转换全部 SOX 文件，除了一个叫 CONVERSATION.SOX 的家伙。后来跟踪看了一下，估计跟浮点数有关，但由于它跟要翻译的东西没有太大关系，所以就先不管它了，让它自生自灭吧。Hoho～</p>
]]></content:encoded>
			<wfw:commentRss>http://tommy.net.cn/2008/07/31/shininglore-onlines-sox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

