问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用vc编写dll动态链接库文件

发布网友 发布时间:2022-04-12 18:30

我来回答

2个回答

懂视网 时间:2022-04-12 22:51

引言 作为一个程序员已经快3年了,但是回顾自己在编程之路上学到东西真没有多少。由于公司项目组一直是在维护七八十年代的制品,一年的新规开发量有限,而更多的是维护,作资料,渐渐的自己已开始对编程陌生了。 作为一个不写程序的程序员我想这是一种悲哀,

引言

作为一个程序员已经快3年了,但是回顾自己在编程之路上学到东西真没有多少。由于公司项目组一直是在维护七八十年代的制品,一年的新规开发量有限,而更多的是维护,作资料,渐渐的自己已开始对编程陌生了。

作为一个不写程序的程序员我想这是一种悲哀,因为年轻时候的我们必须在道路上沉淀一份东西,后面的人生才不会空虚。所以我决定重新拾起技术。希望大家能够给我支持和帮助。

维护这两年来,我感觉到技术能用到项目中才是硬道理,因为我们的时间毕竟是有限的,所以我选取了工作中经常会碰到的技术来开始自己的沉淀。


主要内容

  1. 动态链接库
  2. 文件
  3. 窗体
  4. 控件
  5. 网络
  6. 系统


那我们先从动态链接库开始吧!

动态链接库

动态链接库英文为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 dialog

class CVCDemoDlg : public CDialog
{
// Construction
public:
	CVCDemoDlg(CWnd* pParent = NULL);	// standard constructor
protected:
	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();
}

效果图:

步骤我应该说的很清楚了,有任何疑问,或有不对的地方,还请大家留言指出来,谢谢!

热心网友 时间:2022-04-12 19:59

VC编写dll文件
1、VC++->New->Project->Win32
Dynamic_Link
Library;
2、选择创建一个空工程;
首先DLL需要一个头文件,所以新建一个C\C++
Header
File
这个头文件中必须包含想要输出的变量和函数,头文件必须定义用于输出的任何符号和数据结构。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
五月天的历年专辑价钱及曲目 五月天的所有专辑? 五月天一共有多少专辑啊? 请问男女之间的爱情有性才能维持吗? 迈克尔 杰克逊的最好听的十首歌 给个下载地址 分公司是否可以和员工签订劳动合同 分公司能否与员工签立劳动合同? 分公司可以与员工签订劳动合同的吗 分公司可否签订劳动合同 分公司能否签劳动合同 梦见一条黑蛇吃了一条鱼然后蛇就变成了红蛇 最近总是梦见蛇 梦到自己变成黑蛇然后又变白蛇 梦见黑蛇是什么意思,代表什么 梦见一条会变身的大黑蛇变成粉色毛茸茸的想咬我!在家人的阻止下未咬成,有不好的意思吗? 苹果4s手机铃声有声音,但是其他没有声音是什么原因? iphone4s来电铃声没有声音 苹果手机来电铃声怎么不会响谢谢了,大神帮忙啊 苹果4S来电不会响是为什么 苹果4S来电不响是怎么回事? 巨蟹座的女生分手后,心中还会不会想念对方? 巨蟹座的女生分手后,会不会变得见人就爱? 巨蟹座的女生分手后,多长时间才会忘记前任? 巨蟹座的女生分手后,还会有人爱吗? 通淮街离江宁穆棱有多远 巨蟹座的女生分手后,还会再次真正的爱上一个人吗? 和巨蟹座的女生分手后,该如何走向重生? 南京的高记陕西面馆口味正宗吗?我计划去他那学技术来着,有人去过吗? 通达信怎么找次新股板块 高记陕西面馆的臊子面好吃不,正宗不? 孕妇吃什么东西对子宫和胎儿胎盘好 前置胎盘吃什么食物好 正式服淘汰回放的开关在哪?为啥我找不到? 抖音归属地怎么看,如果我是黑龙江的现在去了别的省,归属地会显示哪里? 抖音账号将显示ip属地 抖音里的地址怎么设置抖音里IP地址怎么设置? 抖音ip属地怎么改? 怎么才能不让别人看到自己抖音里的IP归属地地址呢?不想别人看到!? 抖音只刷不评论的话别人能看见IP地址吗? 微信没有绑定手机,邮箱,是默认的怎么登录? 微信密码忘了 有绑定邮箱和手机号怎么弄? 叶小叶袋泡茶有一款陈皮普洱茶,是采用生普还是熟普? 柑普茶是选用的是生普洱茶还是熟普洱茶,哪个更好喝 菊普茶所用的普洱茶是生普还是熟普? 柑普茶为什么说要用熟茶做!而不是生茶呢?而且柑普茶和熟茶根本就不是同一个年代的! 普洱茶生茶和熟茶哪个减肥效果好 秋天如何喝普洱茶好 夏树静子简介 夏树静子的作品分析 电脑防火墙和杀毒软件都不开有什么危害