• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2025-10-20 20:36 Aet 隐藏边栏 |   抢沙发  1 
文章评分 1 次,平均分 5.0

duilib相关

局部静态变量初始化失败的问题

  1. 描述
    1. 调试一个实现了exedll双形态的程序时发现,duilib一些局部的static变量new出来是空的

  1. 原因

    1. 可能是exedll对于全局变量、静态变量的初始化时机不一样
  2. 解决

    1. 把实现放到头文件里面

dui里面FindResource失败

dui的资源初始化

  1. 初始化

  1. UILIB_FILE

    1. 上面选择在debug模式下使用文件
  2. UILIB_ZIPRESOURCE

    1. release模式下,上面的做法是,把skin文件夹里面的资源内容达成一个zip包,然后把这个包作为自定义资源类型ZIPRES,资源IDIDR_ZIPRES1,打入了exe
    2. rc自定义资源见下节

dui关于程序运行时大小图标

  1. 直接使用LoadIcon来设置
  2. 使用duiCWindowWnd类的SetIcon函数发现,小图标设置不成功

dui实现一个消息派发UI窗口

  1. 头文件
    1. 不需要特意加消息循环

  1. 源文件

  1. 使用

  1. 解析
    1. CUIThreadWindow这个窗口类不会显示出来,在其他非主线程的线程上,可以把一些UI相关的任务通过消息的方式在这个CUIThreadWindow派发窗口上去执行

vs相关

关于bytestd::byte二义性问题

  1. 描述
    1. 处理上述双形态功能时遇到了这个问题
  2. 原因
    1. Windowssdkbyte有一个定义,而std里面对byte也有一个定义
    2. 当引入了Windows的一些头文件,且直接或间接引入了<cstddef>时,可能会导致这个问题
  3. 解决
    1. 在代码中搜索using namespace std,注释掉,并修改相应部位

rc自定义资源

  1. 资源视图里面,选择某个工程的rc打开,添加资源,自定义,ZIPRES
  2. 确定后,同时会生成一个默认的IDR_ZIPRES1
  3. 解决方案资源管理器里面,找到要保存资源的筛选器,如资源文件
    1. 右键,添加,资源,选择ZIPRES,导入
    2. 这样会生成资源IDIDR_ZIPRES2
    3. 删掉IDR_ZIPRES1
    4. 重命名IDR_ZIPRES2IDR_ZIPRES1
    5. 打开Resource.h删掉重复的资源id,比如此时IDR_ZIPRES1IDR_ZIPRES2的值都为130,只留IDR_ZIPRES1
  4. 右键,rc文件,编译

声明:本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享