<?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>小李贼 &#187; visualc</title>
	<atom:link href="http://dipplum.com/tag/visualc/feed/" rel="self" type="application/rss+xml" />
	<link>http://dipplum.com</link>
	<description>Be  the change you wanna see in the world</description>
	<lastBuildDate>Thu, 09 Sep 2010 08:29:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Visual C++编译环境免安装命令行版</title>
		<link>http://dipplum.com/2009/11/13/visualc-compiler-portable/</link>
		<comments>http://dipplum.com/2009/11/13/visualc-compiler-portable/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 12:05:12 +0000</pubDate>
		<dc:creator>li</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[scons]]></category>
		<category><![CDATA[side-by-side]]></category>
		<category><![CDATA[visualc]]></category>

		<guid isPermaLink="false">http://dipplum.com/2009/11/13/visual-c%e7%bc%96%e8%af%91%e7%8e%af%e5%a2%83%e5%85%8d%e5%ae%89%e8%a3%85%e5%91%bd%e4%bb%a4%e8%a1%8c%e7%89%88/</guid>
		<description><![CDATA[VC的IDE开发环境很好，但太大了，经常是2005/2008/2010装一大堆，占用几十G的空间。用惯了Linux的命令行方式，觉得小巧精致。于是想把VC的基本命令提取出来，也做一个绿色版本。 保留基本的编译命令，cl、lib、link、ml之类的。编译工程只能用nmake了。vcproj工程文件怎么办？用scons重写一个吧。(其实命令行也有个vcbuild)。 制作绿色版之前，首先要安装一个VC，再把其中用到的文件提取出来。或者直接快进到后面找下载链接。 Visual C++ 2008制作要领 VC 2008的最大问题是Visual Studio采用Side-by-Side方式发布，不能简单的把依赖的DLL着全就行了。 1. 复制C:\Program Files\Microsoft Visual Studio&#160; 9.0\VC\bin及其子目录1033，到新的vc9\bin目录 2. 在复制VC目录下的lib和include目录，到新的vc9目录下 3. 复制C:\Program Files\Microsoft Visual Studio 2008\Common7\IDE目录下的：msobj80.dll，mspdb80.dll, mspdbcore.dll, mspdbsrv.exe到vc9\bin 4. 在vc\bin生成manifest文件，名为Micrisoft.VC90.CRT.manifest，内容如下 &#60;?xml version=&#34;2.0&#34; encoding=&#34;UTF-8&#34; standalone=&#34;yes&#34;?&#62; &#60;assembly xmlns=&#34;urn:schemas-microsoft-com:asm.v1&#34; manifestversion=&#34;1.0&#34;&#62; &#60;noinheritable&#62;&#60;/noinheritable&#62; &#60;assemblyidentity name=&#34;Microsoft.VC90.CRT&#34; publickeytoken=&#34;1fc8b3b9a1e18e3b&#34; processorarchitecture=&#34;x86&#34; version=&#34;9.0.21022.8&#34; type=&#34;win32&#34;&#62;&#60;/assemblyidentity&#62; &#60;file name=&#34;msvcr90.dll&#34;&#62;&#60;/file&#62; &#60;file name=&#34;msvcp90.dll&#34;&#62;&#60;/file&#62; &#60;/assembly&#62; 5. 找到Windows\WinSxS目录下的x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_&#8230;目录，复制其中的msvcr90.dll和msvcp90.dll到bin目录 Visual C++ 2010制作要领 VC 2010还在Beta阶段，不过据说已经决定不用SxS，直接用DLL发布了，所以制作简单点。 1-3和2008类似，复制bin, include, [...]]]></description>
			<content:encoded><![CDATA[<p>VC的IDE开发环境很好，但太大了，经常是2005/2008/2010装一大堆，占用几十G的空间。用惯了Linux的命令行方式，觉得小巧精致。于是想把VC的基本命令提取出来，也做一个绿色版本。</p>
<p>保留基本的编译命令，cl、lib、link、ml之类的。编译工程只能用nmake了。vcproj工程文件怎么办？用scons重写一个吧。(其实命令行也有个vcbuild)。</p>
<p>制作绿色版之前，首先要安装一个VC，再把其中用到的文件提取出来。或者直接快进到后面找下载链接。</p>
<h4></h4>
<p>  <span id="more-448"></span><br />
<h4>Visual C++ 2008制作要领</h4>
<p>VC 2008的最大问题是Visual Studio采用Side-by-Side方式发布，不能简单的把依赖的DLL着全就行了。</p>
<p>1. 复制C:\Program Files\Microsoft Visual Studio&#160; 9.0\VC\bin及其子目录1033，到新的vc9\bin目录</p>
<p>2. 在复制VC目录下的lib和include目录，到新的vc9目录下</p>
<p>3. 复制C:\Program Files\Microsoft Visual Studio 2008\Common7\IDE目录下的：msobj80.dll，mspdb80.dll, mspdbcore.dll, mspdbsrv.exe到vc9\bin</p>
<p>4. 在vc\bin生成manifest文件，名为Micrisoft.VC90.CRT.manifest，内容如下</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;2.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span> <span style="color: #000066;">standalone</span>=<span style="color: #ff0000;">&quot;yes&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;assembly</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">&quot;urn:schemas-microsoft-com:asm.v1&quot;</span> <span style="color: #000066;">manifestversion</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;noinheritable<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;/noinheritable<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;assemblyidentity</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Microsoft.VC90.CRT&quot;</span> <span style="color: #000066;">publickeytoken</span>=<span style="color: #ff0000;">&quot;1fc8b3b9a1e18e3b&quot;</span> <span style="color: #000066;">processorarchitecture</span>=<span style="color: #ff0000;">&quot;x86&quot;</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;9.0.21022.8&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;win32&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/assemblyidentity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;file</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;msvcr90.dll&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;file</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;msvcp90.dll&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #000000; font-weight: bold;">&lt;/file<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/assembly<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>5. 找到Windows\WinSxS目录下的x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_&#8230;目录，复制其中的msvcr90.dll和msvcp90.dll到bin目录</p>
<h4>Visual C++ 2010制作要领</h4>
<p>VC 2010还在Beta阶段，不过据说已经决定不用SxS，直接用DLL发布了，所以制作简单点。</p>
<p>1-3和2008类似，复制bin, include, lib，复制Common7\IDE目录下的几个dll和exe</p>
<p>4. 到Windows\System32目录下找msvcr100.dll, msvcp100.dll，复制到bin</p>
<h4>Windows SDK</h4>
<p>VC的lib和include里面不带Windows的头文件和库，所以还需要把Windows SDK摘取出来。Windows SDK在安装的时候一般装在C:\Program Files\Microsoft SDKs\Windows\XX目录下，同样把其中的bin, lib, include目录复制出来，到一个新目录，比如win6sdk。</p>
<h4></h4>
<h4>环境设置</h4>
<p>影响C编译器的环境变量就三个，INCLUDE、LIB和PATH。设置好就可以编译了。假定上面我把VC 2008和Windows SDK分别复制到了vc9和win6sdk目录下，在与这两个目录的上级目录中，创建一个BAT脚本，假设叫vc9.bat，包含下面内容：</p>

<div class="wp_syntax"><div class="code"><pre class="bat" style="font-family:monospace;">@echo off
echo Setting environment Visual C++ 2010
&nbsp;
set VCINSTALLDIR=%~dp0vc9
set WindowsSdkDir=%~dp0win6sdk
&nbsp;
set INCLUDE=%WindowsSdkDir%\include;%VCINSTALLDIR%\include
set LIB=%WindowsSdkDir%\lib;%VCINSTALLDIR%\lib
set PATH=%FrameworkDir%\%FrameworkVersion%;%WindowsSdkDir%\bin;%VCINSTALLDIR%\bin;%PATH%</pre></div></div>

<p>再创建一个BAT脚本，叫start-vc9.bat，包含下面一行：</p>

<div class="wp_syntax"><div class="code"><pre class="bat" style="font-family:monospace;">start cmd /K %~dp0vc10.bat</pre></div></div>

<p>在Windows资源管理器中双击start-vc9.bat就可以配置好环境变量，进入VC 2008的编译环境了。</p>
<h4>下载</h4>
<p>1. vc10.rar 21M 2010的命令行工具和include/lib打包 <a href="http://www.uploadground.com/files/EPIKIHXP/vc10.rar" target="_blank">下载</a></p>
<p>需要和3解压到到一起用。双击start-vc10.bat打开一个命令行窗口，就可以用cl, nmake, link等命令了。VC需要的基本环境变量会自动设置。</p>
<p>2. vc9.rar 15M 2008的命令行工具和include/lib打包 <a href="http://www.uploadground.com/files/PY34KVNT/vc9.rar" target="_blank">下载</a></p>
<p>需要和3解压到一起用。双击start-vc9.bat打开命令行窗口，VC需要的环境变量会自动设置。</p>
<p>3. win7.rar 16M Windows 7.0 SDK的include/lib打包 <a href="http://www.uploadground.com/files/1FX250AB/win7.rar" target="_blank">下载</a></p>
<p>注意：命令行编译环境没有包含Debug版的CRT，所有的MFC、ATL的DLL。所以可能存在编译好的程序缺少DLL不能运行的问题。对于2008，可以下载一个VC相关SxS打包。缺DLL就到里面找(参见我的<a href="/2009/11/09/side-by-side-assembly/" target="_blank">Side-by-Side笔记</a>)。对于2010，由于已经废弃了SxS的发布方式，可以直接到网上下载缺的DLL。</p>
]]></content:encoded>
			<wfw:commentRss>http://dipplum.com/2009/11/13/visualc-compiler-portable/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>stratagus最新Windows版</title>
		<link>http://dipplum.com/2009/11/13/stratagus-svn-windows/</link>
		<comments>http://dipplum.com/2009/11/13/stratagus-svn-windows/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 09:12:23 +0000</pubDate>
		<dc:creator>li</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[stratagus]]></category>
		<category><![CDATA[visualc]]></category>
		<category><![CDATA[warcraft]]></category>
		<category><![CDATA[wargus]]></category>

		<guid isPermaLink="false">http://dipplum.com/2009/11/13/stratagus-svn-windows/</guid>
		<description><![CDATA[简介 stratagus的前身是freecraft。freecraft重写了Blizzard公司的经典游戏Warcraft II的RTS游戏引擎。后因版权问题改名。freecraft改名后分成了几个部分，stratagus项目承接了其游戏引擎的部分，wargus在stratagus引擎上进行二次开发，几乎完美重现了Warcaft II的功能。下面是Wargus/Stratagus的效果： 下载说明 Statagus已经在2年前停止开发了，开发人员用同样的引擎转去开发别的游戏了。最后一个版本是2.2.4。但SVN库里还陆续有大的变动，开发人员好像是会不时的merge一些新的功能过来。 我编译的是最新的Stratagus SVN版本r8003，截图上显示的是2.2.5，这个版本有bug，打上了好几处补丁。编译环境是Visual C++ 2008。 1. stratagus-r8003引擎本地下载，需要再下载2 2. 支持stratagus-r8003的Wargus游戏数据 网盘下载 3. 用VMWare ThinApp打包的单可执行程序，单独可运行 网盘下载 开发包下载 如果对源码感兴趣，想自己编译的，可以下载我的Patch和编译环境打包 1. r8003的patch文件，自己checkout的stratagus svn r8003目录，解压后覆盖之 2. stratagus引用的外部lib和头文件打包，用Visual C++ 2008编译，解压后放在stratagus源码上级目录]]></description>
			<content:encoded><![CDATA[<h4>简介</h4>
<p><a href="http://stratagus.sourceforge.net/" target="_blank">stratagus</a>的前身是freecraft。freecraft重写了Blizzard公司的经典游戏<a href="http://us.blizzard.com/en-us/games/legacy/" target="_blank">Warcraft II</a>的RTS游戏引擎。后因<a href="http://en.wikipedia.org/wiki/Stratagus" target="_blank">版权问题改名</a>。freecraft改名后分成了几个部分，stratagus项目承接了其游戏引擎的部分，wargus在stratagus引擎上进行二次开发，几乎完美重现了Warcaft II的功能。下面是Wargus/Stratagus的效果：</p>
<p><a href="http://dipplum.com/files/2009/11/stratagus1.png" rel="shadowbox[post-441];player=img;"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="stratagus1" border="0" alt="stratagus1" src="http://dipplum.com/files/2009/11/stratagus1_thumb.png" width="244" height="184" /></a> <a href="http://dipplum.com/files/2009/11/stratagus2.png" rel="shadowbox[post-441];player=img;"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="stratagus2" border="0" alt="stratagus2" src="http://dipplum.com/files/2009/11/stratagus2_thumb.png" width="244" height="184" /></a> <a href="http://dipplum.com/files/2009/11/stratagus3.png" rel="shadowbox[post-441];player=img;"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="stratagus3" border="0" alt="stratagus3" src="http://dipplum.com/files/2009/11/stratagus3_thumb.png" width="244" height="184" /></a> <a href="http://dipplum.com/files/2009/11/stratagus4.png" rel="shadowbox[post-441];player=img;"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="stratagus4" border="0" alt="stratagus4" src="http://dipplum.com/files/2009/11/stratagus4_thumb.png" width="244" height="184" /></a> </p>
</p>
</p>
<h4>下载说明</h4>
<p> <span id="more-441"></span>
<p>Statagus已经在2年前停止开发了，开发人员用同样的引擎转去开发别的游戏了。最后一个版本是2.2.4。但SVN库里还陆续有大的变动，开发人员好像是会不时的merge一些新的功能过来。</p>
<p>我编译的是最新的Stratagus SVN版本r8003，截图上显示的是2.2.5，这个版本有bug，打上了好几处补丁。编译环境是Visual C++ 2008。</p>
<p>1. stratagus-r8003引擎本地下载，需要再下载2 Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p>2. 支持stratagus-r8003的Wargus游戏数据 <a href="http://is.gd/4U3om">网盘下载</a></p>
<p>3. 用VMWare ThinApp打包的单可执行程序，单独可运行 <a href="http://is.gd/4RO0k" target="_blank">网盘下载</a></p>
<h4>开发包下载</h4>
<p>如果对源码感兴趣，想自己编译的，可以下载我的Patch和编译环境打包</p>
<p>1. r8003的patch文件，自己checkout的stratagus svn r8003目录，解压后覆盖之 Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p>2. stratagus引用的外部lib和头文件打包，用Visual C++ 2008编译，解压后放在stratagus源码上级目录 Note: There is a file embedded within this post, please visit this post to download the file.</p>
]]></content:encoded>
			<wfw:commentRss>http://dipplum.com/2009/11/13/stratagus-svn-windows/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Visual C++ 2009编译libmikmod</title>
		<link>http://dipplum.com/2009/11/10/visualc-compile-libmikmod/</link>
		<comments>http://dipplum.com/2009/11/10/visualc-compile-libmikmod/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 03:13:18 +0000</pubDate>
		<dc:creator>li</dc:creator>
				<category><![CDATA[乱七八糟]]></category>
		<category><![CDATA[mikmod]]></category>
		<category><![CDATA[stratagus]]></category>
		<category><![CDATA[visualc]]></category>

		<guid isPermaLink="false">http://dipplum.com/2009/11/10/visual-c-2009%e7%bc%96%e8%af%91libmikmod/</guid>
		<description><![CDATA[1. 主页 http://mikmod.raphnet.net/ 2. 最新版本 3.2.0-beta2，2004年2月发布 &#160;&#160;&#160; 下载 http://mikmod.raphnet.net/files/libmikmod-3.2.0-beta2.zip 3. 编译依赖 &#160;&#160;&#160; DirectX SDK中的头文件。最新的DirectX SDK 2009 Auguest可以从微软（http://is.gd/4Q3Mo）下载。或者只下载其中include目录和lib目录打包（http://is.gd/4Q416）。 4. 编译方法 &#160;&#160;&#160; 解压后，从Visual Studio 2008的命令行提示符下进入win32目录，首先设置INCLUDE变量，然后编译。如果编译静态链接库，可以参见下例（把directx的目录修改成自己的）： cd win32 set INCLUDE=..\..\directxsdk-0908\include;%INCLUDE% nmake -f makefile.static 5. Bug &#160;&#160;&#160; include\mikmod_internal.h文件中有bug，导致不能在Visual Studio 2008下编译，在该文件的include之后加入下面5行： #ifdef _mm_malloc #undef _mm_malloc #undef _mm_calloc #undef _mm_free #endif 6. 其他注意事项 &#160;&#160;&#160; 1. 编译Multithreaded DLL版的静态库 &#160;&#160;&#160; 编译生成的静态库，为了更好的与其他库交互，最好是编译生成Multithreaded DLL版本，也就是编译时加/MD参数。由于libmikmod默认的头文件不支持编译静态库的同时，链接到MSVCRT的Muiltithreaded DLL。所以要做相应修改。 [...]]]></description>
			<content:encoded><![CDATA[<p>1. 主页 <a href="http://mikmod.raphnet.net/">http://mikmod.raphnet.net/</a></p>
<p>2. 最新版本 3.2.0-beta2，2004年2月发布</p>
<p>&#160;&#160;&#160; 下载 <a href="http://mikmod.raphnet.net/files/libmikmod-3.2.0-beta2.zip">http://mikmod.raphnet.net/files/libmikmod-3.2.0-beta2.zip</a></p>
<p>3. 编译依赖</p>
<p>&#160;&#160;&#160; DirectX SDK中的头文件。最新的DirectX SDK 2009 Auguest可以从微软（<a href="http://is.gd/4Q3Mo）">http://is.gd/4Q3Mo）</a>下载。或者只下载其中include目录和lib目录打包（<a href="http://is.gd/4Q416">http://is.gd/4Q416</a>）。</p>
<p>4. 编译方法</p>
<p>&#160;&#160;&#160; 解压后，从Visual Studio 2008的命令行提示符下进入win32目录，首先设置INCLUDE变量，然后编译。如果编译静态链接库，可以参见下例（把directx的目录修改成自己的）：</p>

<div class="wp_syntax"><div class="code"><pre class="batch" style="font-family:monospace;">cd win32
set INCLUDE=..\..\directxsdk-0908\include;%INCLUDE%
nmake -f makefile.static</pre></div></div>

</p>
<p><span id="more-425"></span></p>
<p>5. Bug</p>
<p>&#160;&#160;&#160; include\mikmod_internal.h文件中有bug，导致不能在Visual Studio 2008下编译，在该文件的include之后加入下面5行：</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#ifdef _mm_malloc</span>
<span style="color: #339933;">#undef _mm_malloc</span>
<span style="color: #339933;">#undef _mm_calloc</span>
<span style="color: #339933;">#undef _mm_free</span>
<span style="color: #339933;">#endif</span></pre></div></div>

<p>6. 其他注意事项</p>
<p>&#160;&#160;&#160; 1. 编译Multithreaded DLL版的静态库</p>
<p>&#160;&#160;&#160; 编译生成的静态库，为了更好的与其他库交互，最好是编译生成Multithreaded DLL版本，也就是编译时加/MD参数。由于libmikmod默认的头文件不支持编译静态库的同时，链接到MSVCRT的Muiltithreaded DLL。所以要做相应修改。</p>
<p>&#160;&#160;&#160; 2. 生成include\mikmod.h</p>
<p>&#160;&#160;&#160; 由于Windows系统没有configure过程，include目录下仅有一个mikmod.h.in，要把其中的版本号替换生成mikmod.h。 </p>
<p>&#160;&#160;&#160; 3. 静态库中缺少load_asy</p>
<p>&#160;&#160;&#160; 静态库中包含的目标文件好像不全，却load_asy，需要修改Makefile将其加进来。</p>
<p>7. 完整的patch</p>
<p>&#160;&#160;&#160; 下面是包含上述改动完整的patch。打上后把include\mikmod.in.h改名为include\mikmod.h即可。</p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family:monospace;">diff -Naur libmikmod-3.2.0-beta2\include\mikmod.h.in libmikmod-3.2.0-beta2-<span style="">2</span>\include\mikmod.h.in
<span style="color: #888822;">--- libmikmod-3.2.0-beta2\include\mikmod.h.in	Wed Feb <span style="">18</span> 09:<span style="">10</span>:<span style="">40</span> 2004</span>
<span style="color: #888822;">+++ libmikmod-3.2.0-beta2-<span style="">2</span>\include\mikmod.h.in	Mon Apr <span style="">26</span> <span style="">18</span>:<span style="">33</span>:00 2004</span>
<span style="color: #440088;">@@ -<span style="">44</span>,<span style="">7</span> +<span style="">44</span>,<span style="">7</span> @@</span>
 #ifdef DLL_EXPORTS
 #define MIKMODAPI __declspec<span style="">&#40;</span>dllexport<span style="">&#41;</span>
 #else
<span style="color: #991111;">-#define MIKMODAPI __declspec<span style="">&#40;</span>dllimport<span style="">&#41;</span></span>
<span style="color: #00b000;">+#define MIKMODAPI</span>
 #endif
 #else
 #define MIKMODAPI
<span style="color: #440088;">@@ -<span style="">54</span>,<span style="">9</span> +<span style="">54</span>,<span style="">9</span> @@</span>
  *	========== Library version
  */
&nbsp;
<span style="color: #991111;">-#define LIBMIKMOD_VERSION_MAJOR @LIBMIKMOD_MAJOR_VERSION@L</span>
<span style="color: #991111;">-#define LIBMIKMOD_VERSION_MINOR @LIBMIKMOD_MINOR_VERSION@L</span>
<span style="color: #991111;">-#define LIBMIKMOD_REVISION      @LIBMIKMOD_MICRO_VERSION@L</span>
<span style="color: #00b000;">+#define LIBMIKMOD_VERSION_MAJOR 3L</span>
<span style="color: #00b000;">+#define LIBMIKMOD_VERSION_MINOR 2L</span>
<span style="color: #00b000;">+#define LIBMIKMOD_REVISION      0L</span>
&nbsp;
 #define LIBMIKMOD_VERSION \
 	<span style="">&#40;</span><span style="">&#40;</span>LIBMIKMOD_VERSION_MAJOR&amp;lt;&amp;lt;<span style="">16</span><span style="">&#41;</span>| \
<span style="color: #440088;">@@ -<span style="">83</span>,<span style="">7</span> +<span style="">83</span>,<span style="">7</span> @@</span>
 typedef char CHAR;
 #endif
&nbsp;
<span style="color: #991111;">-@DOES_NOT_HAVE_SIGNED@</span>
<span style="color: #00b000;">+</span>
&nbsp;
 #if defined<span style="">&#40;</span>__arch64__<span style="">&#41;</span> || defined<span style="">&#40;</span>__alpha<span style="">&#41;</span>
 /* <span style="">64</span> bit architectures */
diff -Naur libmikmod-3.2.0-beta2\include\mikmod_internals.h libmikmod-3.2.0-beta2-<span style="">2</span>\include\mikmod_internals.h
<span style="color: #888822;">--- libmikmod-3.2.0-beta2\include\mikmod_internals.h	Wed Feb <span style="">18</span> 08:<span style="">29</span>:<span style="">18</span> 2004</span>
<span style="color: #888822;">+++ libmikmod-3.2.0-beta2-<span style="">2</span>\include\mikmod_internals.h	Tue Nov <span style="">10</span> <span style="">10</span>:<span style="">47</span>:<span style="">10</span> 2009</span>
<span style="color: #440088;">@@ -<span style="">47</span>,<span style="">6</span> +<span style="">47</span>,<span style="">12</span> @@</span>
 #pragma warning<span style="">&#40;</span>disable:<span style="">4761</span><span style="">&#41;</span>
 #endif
&nbsp;
<span style="color: #00b000;">+#ifdef _mm_malloc</span>
<span style="color: #00b000;">+#undef _mm_malloc</span>
<span style="color: #00b000;">+#undef _mm_calloc</span>
<span style="color: #00b000;">+#undef _mm_free</span>
<span style="color: #00b000;">+#endif</span>
<span style="color: #00b000;">+</span>
 /*========== More type definitions */
&nbsp;
 /* SLONGLONG: 64bit, signed */
diff -Naur libmikmod-3.2.0-beta2\win32\Makefile.static libmikmod-3.2.0-beta2-<span style="">2</span>\win32\Makefile.static
<span style="color: #888822;">--- libmikmod-3.2.0-beta2\win32\Makefile.static	Wed Jan <span style="">21</span> <span style="">12</span>:<span style="">29</span>:<span style="">36</span> 2004</span>
<span style="color: #888822;">+++ libmikmod-3.2.0-beta2-<span style="">2</span>\win32\Makefile.static	Mon Nov 09 <span style="">15</span>:<span style="">28</span>:<span style="">39</span> 2009</span>
<span style="color: #440088;">@@ -<span style="">11</span>,<span style="">7</span> +<span style="">11</span>,<span style="">7</span> @@</span>
 # Your compiler here
 CC=cl
 # Compiler flags
<span style="color: #991111;">-CFLAGS=/nologo /O2 /MTd /Zi /Fm /c /DWIN32 /DDRV_DS /DDRV_WIN /DHAVE_FCNTL_H /DHAVE_MALLOC_H /DHAVE_LIMITS_H</span>
<span style="color: #00b000;">+CFLAGS=/nologo /O2 /MD /Zi /Fm /c /DWIN32 /DDRV_DS /DDRV_WIN /DHAVE_FCNTL_H /DHAVE_MALLOC_H /DHAVE_LIMITS_H</span>
 COMPILE=$<span style="">&#40;</span>CC<span style="">&#41;</span> $<span style="">&#40;</span>CFLAGS<span style="">&#41;</span> /I..\include /I.. /I..\win32
&nbsp;
 .SUFFIXES:
<span style="color: #440088;">@@ -<span style="">29</span>,<span style="">6</span> +<span style="">29</span>,<span style="">7</span> @@</span>
     load_669.o load_amf.o load_dsm.o load_far.o load_gdm.o load_it.o  \
     load_imf.o load_m15.o load_med.o load_mod.o load_mtm.o load_okt.o \
     load_s3m.o load_stm.o load_stx.o load_ult.o load_uni.o load_xm.o \
<span style="color: #00b000;">+    load_asy.o \</span>
     mmalloc.o mmerror.o mmio.o \
     mdriver.o mdreg.o mloader.o mlreg.o mlutil.o mplayer.o munitrk.o mwav.o \
     npertab.o sloader.o virtch.o virtch2.o virtch_common.o
<span style="color: #440088;">@@ -<span style="">106</span>,<span style="">6</span> +<span style="">107</span>,<span style="">9</span> @@</span>
 load_s3m.o:     ..\loaders\load_s3m.c \
 	                ..\win32\mikmod_build.h ..\include\mikmod_internals.h
 	$<span style="">&#40;</span>COMPILE<span style="">&#41;</span> /Fo$@ ..\loaders\load_s3m.c
<span style="color: #00b000;">+load_asy.o:     ..\loaders\load_asy.c \</span>
<span style="color: #00b000;">+	                ..\win32\mikmod_build.h ..\include\mikmod_internals.h</span>
<span style="color: #00b000;">+	$<span style="">&#40;</span>COMPILE<span style="">&#41;</span> /Fo$@ ..\loaders\load_asy.c</span>
 load_stm.o:     ..\loaders\load_stm.c \
 	                ..\win32\mikmod_build.h ..\include\mikmod_internals.h
 	$<span style="">&#40;</span>COMPILE<span style="">&#41;</span> /Fo$@ ..\loaders\load_stm.c
diff -Naur libmikmod-3.2.0-beta2\win32\mikmod_build.h libmikmod-3.2.0-beta2-<span style="">2</span>\win32\mikmod_build.h
<span style="color: #888822;">--- libmikmod-3.2.0-beta2\win32\mikmod_build.h	Thu Feb <span style="">19</span> 09:<span style="">15</span>:<span style="">22</span> 2004</span>
<span style="color: #888822;">+++ libmikmod-3.2.0-beta2-<span style="">2</span>\win32\mikmod_build.h	Mon Nov 09 <span style="">15</span>:<span style="">19</span>:<span style="">11</span> 2009</span>
<span style="color: #440088;">@@ -<span style="">44</span>,<span style="">7</span> +<span style="">44</span>,<span style="">7</span> @@</span>
 #ifdef DLL_EXPORTS
 #define MIKMODAPI __declspec<span style="">&#40;</span>dllexport<span style="">&#41;</span>
 #else
<span style="color: #991111;">-#define MIKMODAPI __declspec<span style="">&#40;</span>dllimport<span style="">&#41;</span></span>
<span style="color: #00b000;">+#define MIKMODAPI</span>
 #endif
 #else
 #define MIKMODAPI</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://dipplum.com/2009/11/10/visualc-compile-libmikmod/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Visual C++ 2008编译libpng</title>
		<link>http://dipplum.com/2009/11/09/visualc-compile-libpng/</link>
		<comments>http://dipplum.com/2009/11/09/visualc-compile-libpng/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 05:23:39 +0000</pubDate>
		<dc:creator>li</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[libpng]]></category>
		<category><![CDATA[visualc]]></category>
		<category><![CDATA[win32]]></category>
		<category><![CDATA[zlib]]></category>

		<guid isPermaLink="false">http://dipplum.com/2009/11/09/visualc-compile-libpng/</guid>
		<description><![CDATA[1. 主页 http://www.libpng.org/pub/png/libpng.html 2. 最新稳定版本 1.2.40 &#160;&#160;&#160; 源码下载 http://download.sourceforge.net/libpng/lpng1240.zip 3. 编译依赖 &#160;&#160;&#160; 依赖zlib。要求名为zlib的目录位于和libpng源码平级的目录下。libpng会自行编译zlib的源码，而zlib 1.2.3版本中的汇编代码在VC 2008下编译存在问题，参见zlib的编译说明。 4. 编译方法 &#160;&#160;&#160; 打开源码中的projects\vc71\libpng.sln工程文件。编译DLL ASM Release和LIB ASM Release就可以了。会得到libpng.lib、libpng13.lib、libpng13.dll。 5. 注意 &#160;&#160;&#160; ligpng会编译自己的zlib1.dll和zlib.lib，不知道编译参数和zlib自己的工程文件是否一样，也不知道和zlib工程文件编译出的dll和lib会不会冲突。这个问题留待考察。]]></description>
			<content:encoded><![CDATA[<p>1. 主页 <a href="http://www.libpng.org/pub/png/libpng.html">http://www.libpng.org/pub/png/libpng.html</a></p>
<p>2. 最新稳定版本 1.2.40</p>
<p>&#160;&#160;&#160; 源码下载 <a href="http://download.sourceforge.net/libpng/lpng1240.zip">http://download.sourceforge.net/libpng/lpng1240.zip</a></p>
<p>3. 编译依赖</p>
<p>&#160;&#160;&#160; 依赖zlib。要求名为zlib的目录位于和libpng源码平级的目录下。libpng会自行编译zlib的源码，而zlib 1.2.3版本中的汇编代码在VC 2008下编译存在问题，参见<a href="http://dipplum.com/2009/11/08/visualc-compile-zlib/" target="_blank">zlib的编译说明</a>。</p>
<p>4. 编译方法</p>
<p>&#160;&#160;&#160; 打开源码中的projects\vc71\libpng.sln工程文件。编译DLL ASM Release和LIB ASM Release就可以了。会得到libpng.lib、libpng13.lib、libpng13.dll。</p>
<p>5. 注意</p>
<p>&#160;&#160;&#160; ligpng会编译自己的zlib1.dll和zlib.lib，不知道编译参数和zlib自己的工程文件是否一样，也不知道和zlib工程文件编译出的dll和lib会不会冲突。这个问题留待考察。</p>
]]></content:encoded>
			<wfw:commentRss>http://dipplum.com/2009/11/09/visualc-compile-libpng/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual C++ 2008编译lua</title>
		<link>http://dipplum.com/2009/11/09/visualc-compile-lua/</link>
		<comments>http://dipplum.com/2009/11/09/visualc-compile-lua/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 02:39:43 +0000</pubDate>
		<dc:creator>li</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[visualc]]></category>
		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://dipplum.com/2009/11/09/visualc-compile-lua/</guid>
		<description><![CDATA[1. 项目主页 http://www.lua.org/ 2. 当前最新稳定版本 5.1.4，2008年8月发布 &#160;&#160;&#160; 源码下载 http://www.lua.org/ftp/lua-5.1.4.tar.gz 3. VC编译方法 &#160;&#160;&#160; 解压后，用Visual Studio 2008命令行环境进入lua目录，运行etc\luavs.bat。之后会在src目录下生成lua.exe、luac.exe、lua51.dll 4. 注意 &#160;&#160;&#160; 默认的luavs.bat只会生成DLL，如果需要编译静态链接库，可以自行修改luavs.bat，修改两处地方 &#160;&#160;&#160; 1. 删除cl.exe的编译选项 /DLUA_BUILD_AS_DLL &#160;&#160;&#160; 2. 生成DLL的命令改成 lib.exe /nologo /out:lua.lib *.obj]]></description>
			<content:encoded><![CDATA[<p>1. 项目主页 <a href="http://www.lua.org/">http://www.lua.org/</a></p>
<p>2. 当前最新稳定版本 5.1.4，2008年8月发布</p>
<p>&#160;&#160;&#160; 源码下载 <a href="http://www.lua.org/ftp/lua-5.1.4.tar.gz">http://www.lua.org/ftp/lua-5.1.4.tar.gz</a></p>
<p>3. VC编译方法</p>
<p>&#160;&#160;&#160; 解压后，用Visual Studio 2008命令行环境进入lua目录，运行etc\luavs.bat。之后会在src目录下生成lua.exe、luac.exe、lua51.dll</p>
<p>4. 注意</p>
<p>&#160;&#160;&#160; 默认的luavs.bat只会生成DLL，如果需要编译静态链接库，可以自行修改luavs.bat，修改两处地方</p>
<p>&#160;&#160;&#160; 1. 删除cl.exe的编译选项 /DLUA_BUILD_AS_DLL</p>
<p>&#160;&#160;&#160; 2. 生成DLL的命令改成 lib.exe /nologo /out:lua.lib *.obj</p>
]]></content:encoded>
			<wfw:commentRss>http://dipplum.com/2009/11/09/visualc-compile-lua/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual C++ 2008编译zlib</title>
		<link>http://dipplum.com/2009/11/08/visualc-compile-zlib/</link>
		<comments>http://dipplum.com/2009/11/08/visualc-compile-zlib/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 10:27:46 +0000</pubDate>
		<dc:creator>li</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[asm]]></category>
		<category><![CDATA[visualc]]></category>
		<category><![CDATA[win32]]></category>
		<category><![CDATA[zlib]]></category>

		<guid isPermaLink="false">http://dipplum.com/2009/11/08/visualc-compile-zlib/</guid>
		<description><![CDATA[记录下Visual C++ 2008编译zlib的过程，以备不时之需。 1. 项目主页 http://www.zlib.net/ 2. 当前最新稳定版本 1.2.3，2005年7月发布 源码下载 http://www.zlib.net/zlib123.zip 3. VC编译方法 解压后，打开项目文件projects\visualc6\zlib.dsw，新版本的VC会提示要做工程格式转换。一般只编译其中zlib项目的DLL Release和LIB Release就好了。 4. Bug 如果想编译zlib的DLL ASM Release和LIB ASM Release，会出现下面的错误： contrib\masmx86\inffas32.asm&#40;647&#41; : error A2070:invalid instruction operands contrib\masmx86\inffas32.asm&#40;649&#41; : error A2070:invalid instruction operands contrib\masmx86\inffas32.asm&#40;663&#41; : error A2070:invalid instruction operands contrib\masmx86\inffas32.asm&#40;720&#41; : error A2070:invalid instruction operands 这是因为VC2008的MASM语法更严格了，导致之前的代码语法检查不过。参照这里的说明，把inffas32.asm改好就OK了。或者下载我改好的]]></description>
			<content:encoded><![CDATA[<p>记录下Visual C++ 2008编译zlib的过程，以备不时之需。</p>
<p>1. 项目主页 <a href="http://www.zlib.net/">http://www.zlib.net/</a></p>
<p>2. 当前最新稳定版本 1.2.3，2005年7月发布</p>
<p>源码下载 <a href="http://www.zlib.net/zlib123.zip">http://www.zlib.net/zlib123.zip</a></p>
<p>3. VC编译方法</p>
<p>解压后，打开项目文件projects\visualc6\zlib.dsw，新版本的VC会提示要做工程格式转换。一般只编译其中zlib项目的DLL Release和LIB Release就好了。</p>
<p>4. Bug</p>
<p>如果想编译zlib的DLL ASM Release和LIB ASM Release，会出现下面的错误：</p>

<div class="wp_syntax"><div class="code"><pre class="asm" style="font-family:monospace;">contrib\masmx86\inffas32<span style="color: #339933;">.</span>asm<span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #0000ff;">647</span><span style="color: #009900; font-weight: bold;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">error</span> A2070<span style="color: #339933;">:</span>invalid instruction operands
contrib\masmx86\inffas32<span style="color: #339933;">.</span>asm<span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #0000ff;">649</span><span style="color: #009900; font-weight: bold;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">error</span> A2070<span style="color: #339933;">:</span>invalid instruction operands
contrib\masmx86\inffas32<span style="color: #339933;">.</span>asm<span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #0000ff;">663</span><span style="color: #009900; font-weight: bold;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">error</span> A2070<span style="color: #339933;">:</span>invalid instruction operands
contrib\masmx86\inffas32<span style="color: #339933;">.</span>asm<span style="color: #009900; font-weight: bold;">&#40;</span><span style="color: #0000ff;">720</span><span style="color: #009900; font-weight: bold;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000000; font-weight: bold;">error</span> A2070<span style="color: #339933;">:</span>invalid instruction operands</pre></div></div>

<p>这是因为VC2008的MASM语法更严格了，导致之前的代码语法检查不过。参照<a href="http://www.achacha.org/vc2008_zlib123/">这里</a>的说明，把inffas32.asm改好就OK了。或者下载我<a href="http://dipplum.com/download/6/">改好的</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dipplum.com/2009/11/08/visualc-compile-zlib/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Visual C++ 2008编译SDL小结</title>
		<link>http://dipplum.com/2009/11/08/visualc-compile-sdl/</link>
		<comments>http://dipplum.com/2009/11/08/visualc-compile-sdl/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 09:42:26 +0000</pubDate>
		<dc:creator>li</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[directx]]></category>
		<category><![CDATA[sdl]]></category>
		<category><![CDATA[visualc]]></category>
		<category><![CDATA[win32]]></category>

		<guid isPermaLink="false">http://dipplum.com/2009/11/08/visualc-compile-sdl/</guid>
		<description><![CDATA[最近在Windows平台上编译SDL，过程记录下来备忘。说是用VC 2008编译，其实和用VC 2005和VC 2010编译过程都是一样的。 1. SDL 主页 http://www.libsdl.org/ 2. 当前最新稳定版本 1.2.14 &#160;&#160;&#160; 源码 http://www.libsdl.org/release/SDL-1.2.14.zip 3. VC编译方法 &#160;&#160;&#160; SDL-1.2.14.zip解压后，再解压其中的VisualC.zip，然后用VC打开VisualC\SDL.sln。编译SDL和SDLmain两个工程。 4. 编译依赖 &#160;&#160;&#160; DirectX SDK中的dsound.h, dinput.h几个头文件，和dxguid.lib这个库文件。最新的DirectX SDK 2009 Auguest可以从微软（http://is.gd/4Q3Mo）下载。或者只下载其中include目录和lib目录打包（http://is.gd/4Q416）。 5. 注意 &#160;&#160;&#160; 这样通过SDL.sln编译出的SDL.dll依赖msvcr90.dll，需要目的端也装了VC 2009的redistributable才行。要么就用外置manifest文件的方法发布，还没搞懂，搞懂再写。]]></description>
			<content:encoded><![CDATA[<p>最近在Windows平台上编译SDL，过程记录下来备忘。说是用VC 2008编译，其实和用VC 2005和VC 2010编译过程都是一样的。</p>
<p>1. SDL 主页 <a href="http://www.libsdl.org/">http://www.libsdl.org/</a></p>
<p>2. 当前最新稳定版本 1.2.14</p>
<p>&#160;&#160;&#160; 源码 <a href="http://www.libsdl.org/release/SDL-1.2.14.zip">http://www.libsdl.org/release/SDL-1.2.14.zip</a></p>
<p>3. VC编译方法</p>
<p>&#160;&#160;&#160; SDL-1.2.14.zip解压后，再解压其中的VisualC.zip，然后用VC打开VisualC\SDL.sln。编译SDL和SDLmain两个工程。</p>
<p>4. 编译依赖</p>
<p>&#160;&#160;&#160; DirectX SDK中的dsound.h, dinput.h几个头文件，和dxguid.lib这个库文件。最新的DirectX SDK 2009 Auguest可以从微软（<a href="http://is.gd/4Q3Mo）">http://is.gd/4Q3Mo）</a>下载。或者只下载其中include目录和lib目录打包（<a href="http://is.gd/4Q416">http://is.gd/4Q416</a>）。</p>
<p>5. 注意</p>
<p>&#160;&#160;&#160; 这样通过SDL.sln编译出的SDL.dll依赖msvcr90.dll，需要目的端也装了VC 2009的redistributable才行。要么就用外置manifest文件的方法发布，还没搞懂，搞懂再写。</p>
]]></content:encoded>
			<wfw:commentRss>http://dipplum.com/2009/11/08/visualc-compile-sdl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
