您好,欢迎访问一九零五行业门户网

【VC编程技巧】动态链接库?1.1调用Dll中的一个图标

引言 作为一个程序员已经快3年了,但是回顾自己在编程之路上学到东西真没有多少。由于公司项目组一直是在维护七八十年代的制品,一年的新规开发量有限,而更多的是维护,作资料,渐渐的自己已开始对编程陌生了。 作为一个不写程序的程序员我想这是一种悲哀,
引言
作为一个程序员已经快3年了,但是回顾自己在编程之路上学到东西真没有多少。由于公司项目组一直是在维护七八十年代的制品,一年的新规开发量有限,而更多的是维护,作资料,渐渐的自己已开始对编程陌生了。
作为一个不写程序的程序员我想这是一种悲哀,因为年轻时候的我们必须在道路上沉淀一份东西,后面的人生才不会空虚。所以我决定重新拾起技术。希望大家能够给我支持和帮助。
维护这两年来,我感觉到技术能用到项目中才是硬道理,因为我们的时间毕竟是有限的,所以我选取了工作中经常会碰到的技术来开始自己的沉淀。
主要内容动态链接库文件窗体控件网络系统
那我们先从动态链接库开始吧!
动态链接库动态链接库英文为dll,是dynamic link library 的缩写形式;dll是一个包含可由多个程序同时使用的代码和数据的库,它的优势在于数据和资源共享。更容易使项目模块化,提高了项目开发效率,当dll内容改动了,只要保证接口不变,原来的调用改dll的模块不用重新编译,易于维护,也节约了成本。它的存在很容易实现软件的多语言版,换肤等等。
动态链接库?调用dll中的一个图标1.建立mfc regulardll。工程名:vcdll25
2.插入icon资源,id为默认的 idi_icon1;查看resource.h文件(资源id一定要记住)
//{{no_dependencies}}// microsoft developer studio generated include file.// used by vcdll25.rc//#define idi_icon1 1000
3.编译工程生成动态链接库”vcdll25.dll”。4.创建测试对话框程序vcdemo,将vcdll25.dll考到工程目录下。(功能:通过点击ok按钮去改变默认对话框的icon。)
5.文件vcdemodlg.h中添加保存dll(vcdll25.dll)的句柄m_hlib和保存icon的句柄m_hlibicon:
// cvcdemodlg dialogclass cvcdemodlg : public cdialog{// constructionpublic: cvcdemodlg(cwnd* pparent = null); // standard constructorprotected: hicon m_hlibicon; hinstance m_hlib;...};
6文件vcdemodlg.pp中函数oninitdialog()加载dll:bool cvcdemodlg::oninitdialog(){ cdialog::oninitdialog(); ... m_hlib = afxloadlibrary(vcdll25.dll); return true; // return true unless you set the focus to a control}
7.向vcdemodlg添加消息响应函数ondestroy,然后释放dll:void cvcdemodlg::ondestroy() { cdialog::ondestroy(); // todo: add your message handler code here afxfreelibrary(m_hlib);}
8.在对话框onok函数中,我们加载icon图标,然后更换应用程序的图标void cvcdemodlg::onok() { // todo: add extra validation here if (m_hlib != null) { afxsetresourcehandle(m_hlib); } //ここでの1000はdll中にイコンのハンドルである m_hlibicon = loadicon(afxgetresourcehandle(),makeintresource(1000)); if (m_hlibicon != null) { m_hicon = m_hlibicon; } seticon(m_hicon, true); // set big icon seticon(m_hicon, false); // set small icon// cdialog::onok();}
效果图:
步骤我应该说的很清楚了,有任何疑问,或有不对的地方,还请大家留言指出来,谢谢!
其它类似信息

推荐信息