用 Visual Studio 2008 编译 CvGameCoreDLL

教你用Visual Studio 2008(VC++)来编译文明4 BTS 3.19的源码,提供需要用到的资源下载。

CvGameCoreDLL是用Visual Studio 2003来编译的,不过,没理由装多个VS,CodeBlocks又有点烦
首先本文当你会用VS来编程,不是小白为前提,当前以装有Visual Studio 2008(VC++)
本文不是翻译人家写的东西,是参考完人家之后的。。。

一,下载必要的东西

msvc7lib.rar(msvcprt.lib,msvcrt.lib,msvcrtd.lib)

(skydrive下载) msvc7lib (210.0 KiB, 92 次点击)

Makefile.rar

(skydrive下载) Makefile (4.0 KiB, 80 次点击)

Visual C++ Toolkit 2003

(skydrive下载) VCToolkitSetup (29.9 MiB, 81 次点击)

[MOD工具]BTS 3.19 英文版改 3.19 汉化/日文版
http://blog.ztjal.info/civilization-series/civilization4-mod-editor-related/bts-3-19-en-change-to-3-19-ch

二,安装

1,先装Visual C++ Toolkit 2003

2,把msvc7lib.rar内的三个LIB文件放到Visual C++ Toolkit 2003的LIB目录下,如:
x:\Program Files\Microsoft Visual C++ Toolkit 2003\lib

三,终于要开始了

1,打开VS2008,文件->新建->项目

2,展开Visual C++,选择“常规”,在右边选择“生成文件项目”模板

3,看下边,名称上填“CvGameCoreDLL”,位置选择一个文件夹“F:\mysdk”
(第3步填两个都是你自己喜欢,没限制,我又在用肺来说话了吗)

4,确定,之后又弹来窗口出来,直接“完成”

5,好了,项目以经建立了,下面打开“F:\mysdk\CvGameCoreDLL”文件夹,将Makefile.rar内的Makefile扔到这里,不要关文件夹

6,打开你的BTS文件夹,进入CvGameCoreDLL目录,如:
x:\Program Files\Firaxis Games\Sid Meier's Civilization 4\Beyond the Sword\CvGameCoreDLL

7,除了两个文件夹“Boost-1.32.0”、“Python24”,两个文件“CvGameCoreDLL.vcproj”、“CvGameCoreDLL.vcproj.vspscc”之外,所有文件的东西全部复制到“F:\mysdk\CvGameCoreDLL”文件夹下面

8,好了,用词事本打开“F:\mysdk\CvGameCoreDLL”下面的Makefile文件,要小修改一下:
TOOLKIT=E:/Program Files/Microsoft Visual C++ Toolkit 2003
Visual C++ Toolkit 2003的安装路径

PSDK= D:/Program Files/Microsoft SDKs/Windows/v6.0A
装了VS2008就会有的,也可以用Server 2003 SP1 Platform SDK的路径,如果你有装

BASE1 = F:/Program Files/Firaxis Games/Sid Meier's Civilization 4/Beyond the Sword/CvGameCoreDLL/
Boost-1.32.0和Python24的父路径,别忘记最后要有个“/”

USE_CYBERFRONT = 1
是否使用CYBERFRONT预处理定义,用来决定输出的是英文版还是汉化版的DLL,1是汉化版,0是英文版

9,使用[MOD工具]BTS 3.19 英文版改 3.19 汉化/日文版(319ento319ch.exe),直接用第一页的“CvGameCoreDLL”功能,将“F:\mysdk\”下的CvGameCoreDLL文件夹拉进“CvGameCoreDLL”页的框内,会自动找5个要处理的文件,点“修改”,处理完之后就关掉,没用了,其它窗口也可以关掉了。

10,好了,回到VS IDE上,对“CvGameCoreDLL”工程右键->添加->现有项,直接将“F:\mysdk\CvGameCoreDLL”文件夹下面的一个ctrl+a全选后点确定,另一种方法是直接将“F:\mysdk\CvGameCoreDLL”文件夹拉到“CvGameCoreDLL”工程再放手(我建议),现在IDE开始导入了,下面看得见,等下。

11,导入完成后,再回到IDE上,对“CvGameCoreDLL”工程右键->属性,配置切换到“Release”

12,展开配置属性,选择“NMake”,再右边看“常规”内有,“生成”命令行、“全部重新生成”命令行、“清除”命令行,这三个。
现在要分别对他们输入各个命令,从选中的每行的右边的“...”按钮可以打开编辑器

“生成”命令行:
nmake Release

“全部重新生成”命令行:
nmake Release_clean
nmake Release

“清除”命令行:
nmake Release_clean

13,好了,一切都搞完了,最后将IDE上边换成“Release”,生成DLL去吧。

四,一些其它的参考文章

Using Microsoft Visual C++ 2005 Express Edition
http://forums.civfanatics.com/showthread.php?t=196283

Installing and using the SDK(教你用CodeBlocks)
http://forums.civfanatics.com/showthread.php?t=166933

http://modiki.civfanatics.com/index.php/How_to_Install_the_SDK

《用 Visual Studio 2008 编译 CvGameCoreDLL》有5个评分

★★★★★
★★★★
★★★
★★
5
0
0
0
0

用 Visual Studio 2008 编译 CvGameCoreDLL》有12个想法

      1. 编译boost库对于非电脑专业的人来说太困难了,能提供编译好的文件吗?而且这个boost1.32实在是太久远了,boost官网的boost-binaries最旧也是1.34,没有1.32下载了。

          1. 谢谢,终于成功编译了,但是编译玩我才发现,这个源码是b12版的,导致b13版的功能,可重复建造奇观,刷新随机种子等等的功能都没了。请问您会不会公布b13的源码?

            1. 研究了cvcity.app两天还是没有研究出多重生产的方法,可不可以提供B13版的源码参考呢,或者直接提供cvcity.app,cvunit.h,等几个相关文件也可以,谢谢。

              1. 十分感谢,经过几天奋战,终于自己研究cvcity.app研究出多重生产的代码了。谢谢你提供boost库。

  1. 编译anyfun的dll的时候出现三个错误,不知道可不可以给点提示?
    错误 1 error LNK1104: cannot open file 'libboost_regex-vc71-mt-1_32.lib' C:\Users\Administrator\Desktop\CvGameCoreDLL_vc10\LINK CvGameCoreDLL
    错误 2 error U1077: “"D:/Program Files (x86)/Microsoft Visual C++ Toolkit 2003\bin\link.exe"”: 返回代码“0x450” C:\Users\Administrator\Desktop\CvGameCoreDLL_vc10\NMAKE CvGameCoreDLL
    错误 3 error MSB3073: 命令“nmake Release_en”已退出,代码为 2。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets 38 6 CvGameCoreDLL
    可不可以说说是什么问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注