7.4 资源发布
<p>开发者需要在【InitInstance】时设置资源发布类型。</p>
<h2>1 发布资源文件</h2>
<p>直接将res目录原样放在安装包。发布时,需要再带完整的【res】目录。</p>
<p>调用以下方法,将资源发布类型设置为【发布资源文件】:</p>
<pre><code class="language-c">#pragma once
class CApp : public CSkinApplication
{
public:
CApp();
public:
virtual BOOL InitInstance();
virtual ResType GetResType() { return RT_FILE; }
virtual void Run(const tstring&amp; strCmdLine, int nCmdShow);
virtual void ExitInstance();
};
extern CApp theApp;
</code></pre>
<h5>优点:</h5>
<ul>
<li>更新版本时,只需更新变化的资源,不需要更新整个资源目录;</li>
</ul>
<h5>缺点:</h5>
<ul>
<li>可以随意获得和修改资源文件;</li>
</ul>
<h2>2 发布资源文件包</h2>
<p>将res目录下的文件夹打包成【xxx.res】文件。发布时,只需携带【xxx.res】即可,不需要再带完整的【res】目录。</p>
<p>调用以下方法,将资源发布类型设置为【发布资源文件包】:</p>
<pre><code class="language-c">#pragma once
class CApp : public CSkinApplication
{
public:
CApp();
public:
virtual BOOL InitInstance();
virtual ResType GetResType() { return RT_FILE_PACKAGE; }
virtual void Run(const tstring&amp; strCmdLine, int nCmdShow);
virtual void ExitInstance();
};
extern CApp theApp;
</code></pre>
<h5>优点:</h5>
<ul>
<li>资源文件加密,无法随意获得和修改资源文件;</li>
</ul>
<h5>缺点:</h5>
<ul>
<li>更新版本时,需要更新整个资源目录;</li>
</ul>
<h2>3 发布RC资源文件包</h2>
<p>将res目录下的文件夹打包成【xxx.res】文件,然后以资源文件的方式,打包到exe文件中。发布时,资源文件已经包含在exe文件,不需要带任何资源文件。</p>
<p>调用以下方法,将资源发布类型设置为【发布RC资源文件包】:</p>
<pre><code class="language-c">#pragma once
class CApp : public CSkinApplication
{
public:
CApp();
public:
virtual BOOL InitInstance();
virtual ResType GetResType() { return RT_RC_PACKAGE; }
virtual void Run(const tstring&amp; strCmdLine, int nCmdShow);
virtual void ExitInstance();
};
extern CApp theApp;
</code></pre>
<h5>优点:</h5>
<ul>
<li>资源文件加密,无法随意获得和修改资源文件;</li>
<li>只需一个exe文件即可运行,在某些情况下非常有用。</li>
</ul>
<h5>缺点:</h5>
<ul>
<li>更新版本时,需要更新整个资源和exe文件;</li>
</ul>