C/C++
文章平均质量分 66
老夏
传统的IT人
展开
-
ARX开发 - 对话框
1、ARX中对话框通常继承自CAcUiDialog,CAcUiDialog 构造函数有个参数 HINSTANCE hInstance,默认为 NULL,指定了对话框资源所在DLL进程。如果没有指定该参数,在创建对话框(DoModal或Create)前,需要切换资源,一般是定义一个变量:CAcModuleResourceOverride res; 这个类的特点是创建的时候自动切换资源空间为当前模块,...原创 2018-07-05 09:05:43 · 1536 阅读 · 0 评论 -
关于CDialog的几个函数
1、viutual BOOL OnInitDialog() 发现有些同学以为在这里返回FALSE就会退出对话框。实际上,以前自动创建对话框类,会有一个默认实现的OnInitDialog()函数,最后一行会有注释,意思是这里应返回值TRUE,例外情况是作为OCX(控件)属性页返回FALSE。要在这里退出对话框,可以用OnCancel()或EndDialog(),并立即返回TRUE(避免在对话...原创 2018-09-05 00:17:39 · 2785 阅读 · 0 评论 -
代码升级:从多字节到Unicode字符集
十几年前,还是用VC++6.0开发,使用的是多字节字符集,字符串类型的变量一般用:char[], char*,const char*,CString。随着开发工具的更新,需求的变化,更高版本的系统需要使用Unicode字符集。旧代码的算法逻辑并没有什么问题,只是字符串参数类型和一些字符串操作函数需要修改一下,当然不必重写一遍,只需要对代码进行升级,从多字节字符第一步集升级到Unicode字...原创 2018-09-16 15:56:37 · 1191 阅读 · 0 评论 -
C++引用变量(别名)引起的一个小问题
引用(别名)是怎么回事,这里不赘述。引用变量初始化后就不能再修改,有一天遇到个有意思的问题,大致如下:class A{public: A(){ m_AID = 0; } virtual ~A(){} int m_AID;};class B : public A{public: B() : A(), m_BID(m_AID){} ...原创 2018-10-31 17:16:00 · 345 阅读 · 0 评论 -
原味的SM3密码杂凑算法
根据国家密码管理局官网发布的规范文档里的算法描述,对SM3密码杂凑算法进行了原汁原味的实现。代码里的函数、变量名称都尽量使用算法描述中的名称,尽量遵循算法描述的原始步骤,不使用算法技巧进行处理。 算法描述里的“位”的存储在程序中用字节来存储,因此代码里会有这样的写法:unsigned char Vi[256/8],表示Vi为256位(存储为256/8字节)的意思,而对等的 unsig...原创 2019-03-24 17:39:57 · 2297 阅读 · 3 评论