您的位置:首页 > 编程语言 > Lua

LuaStudio源码分析2资源文件

2011-08-30 16:28 453 查看
资源文件被放在ResDll项目里单独编译出dll的,LuaStudio工程中的资源在编译时由于使用了宏并不包含实际的任何资源,

因此编译出的LuaStudio.exe图标是一个空白图标,这当然并不耽误使用.不过我还是给它加了一个图标,对于资源的处理有两种方式:

1.不适用Res.dll直接将资源编译到LuaStudio.exe中,这样的话就将ResDll工程属性中资源的预处理器定义:

_DEBUG,AFX_TARG_NEU,AFX_TARG_ENU,AFX_RESOURCE_DLL


复制到LuaStudio工程属性的资源预处理器中.这样资源便会编译并链接到LuaStudio.exe中了.

而且在代码src/App.cpp中StudioApp::InitInstance()的加载资源Res.dll也可以注释掉了:

// read resources

inst_res_ = LoadLibrary("Res.dll");

if (inst_res_ == NULL)

{

AfxMessageBox("Can't find resource DLL 'Res.dll'.", MB_OK | MB_ICONERROR);

returnfalse;

}

AfxSetResourceHandle(inst_res_);


而且这种方法生成的LuaStudio.exe的图标不再会是空白图标.

2.继续使用资源dll:Res.dll,仅仅为LuaStudio.exe添加一个图标.

这个改动最少,只要打开src/LuaStudio.rc,在以下代码:

/////////////////////////////////////////////////////////////////////////////

// StudioApp initialization

// Microsoft Visual C++ generated resource script.

//

#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 2 resource.

//

#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////

#undef APSTUDIO_READONLY_SYMBOLS


后边添加:

//add begin

//由于程序的资源全部放在res.dll中,主程序并没用这些资源

//加上这个主要是要主程序文件有个图标

IDR_MAINFRAME           ICON                    "res\\lua-studio.ico"

//add end


即可.通过以上方法的任何一种都可以,编译出来的LuaStudio.exe为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: