zoukankan      html  css  js  c++  java
  • LuaStudio源码分析2资源文件

    资源文件被放在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为:

  • 相关阅读:
    编程小技巧之 Linux 文本处理命令(二)
    基金投资经验总结
    基金投资需要掌握的几个基本概念
    动目标指示MTI和动目标检测MTD
    雷达信号处理基础-快时间维和慢时间维
    信号处理第二篇——接着谈正弦信号
    毫米波雷达第一篇——测距篇
    信号处理第一篇——浅谈正弦信号
    python学习总结篇(3)——类
    python中的if __name__ == '__main__' 如何正确理解?
  • 原文地址:https://www.cnblogs.com/daxingxing/p/2159746.html
Copyright © 2011-2022 走看看