动态链接库 MFC扩展库
有时候我们会导入动态库的时候,总是导入一个完整的类,又不想和其他动态库一样,显示链接或隐式链接,需要导入函数地址感觉太麻烦,MFC中可以这样创建扩展dll完美解决问题,微软的VS 会为我们简单的操作就可以了,步骤如下
- 先打开 VS2010 选择创建新项目,选择MFC连接库dll

- 填写项目名称和路径,确定之后,选择MFC扩展DLL

3. 打开新创建的项目后,自己创建需要封装的类,也可以把自己做好的类导入项目。

-
在封装的类的头文件中,类的声明处加上 AFX_EXT_CLASS,编译后又lib , dll 等文件


-
使用dll ,在其他项目中只需要这个头文件,导入lib 文件。并在测试项目中的执行目录中加入dll


-
在测试项目中使用dll 示例

void CTestdlgDlg::OnBnClickedButtonSet()
{
UpdateData(); int nIndex = -1;
CString strText = m_strValue; CUIntArray Intarray;
while(true)
{
nIndex = strText.Find(_T(","));
if(nIndex == -1)
{
Intarray.Add(_tstoi(strText));
break;
}
CString str = strText.Left(nIndex);
Intarray.Add(_tstoi(str));
strText = strText.Mid(nIndex+1);
}
int* pArry = new int[Intarray.GetCount()];
for(int i=0;i<Intarray.GetCount();i++)
{
pArry[i] = Intarray.GetAt(i);
}
m_sort.QuickSort(pArry,Intarray.GetCount());
m_strShow = _T("排序后的数组是:");
for(int i=0;i<Intarray.GetCount();i++)
{
CString str;
str.Format(_T("%d,"),pArry[i]);
m_strShow+=str;
}
delete pArry;
pArry = NULL;
UpdateData(FALSE);
}
效果图

注意:
- 编译环境,如果是Debug x86 则 其他项目或测试项目也要与dll的一致,尤其是使用 Unicode 字符集还是多字节的,一定要保持一致。
- 参数类型如果是字符串CString的,最好是改LPCTR,因为C++在编译的时候函数会改名。
MFC扩展DLL创建教程
本文介绍如何使用Microsoft Visual Studio 2010创建MFC扩展动态链接库(DLL)。通过具体步骤演示如何创建、封装类,并在其他项目中轻松使用这些类,无需繁琐的函数地址导入。
1870

被折叠的 条评论
为什么被折叠?



