用编制程序的方法小结覆盖
以下是一个编制DLL的程序示例。为此,应先建立一个名为TestDll应用主程序,再创建一个DLL应用,作为主工程的子工程,并在主工程中调用DLL。通过MFC AppWizard创建一个对话框程序,在其中添加一个命令按钮(名称为\"调用DLL程序\"),其程序运行后的界面如图三。点击按钮后就去调用DLL程序。以下介绍该DLL程序的编制。
图三
如图一和图二所示,通过MFC AppWizard(dll)输入DLL程序的名称\"DLL\"后点击\"Finish\"按钮生成一个DLL程序的基本结构,其中在运行到图二界面时,我们可以选择第一项按钮\"Regular DLL with MFC statically linked\" 生成常规静态DLL,也可以选择第二项按钮\"Regular DLL using shared MFC DLL\"生成常规动态DLL,后者的体积远远小于前者。现在的任务是在运行DLL时弹出一个显示\"This is My DLL\"字样的对话框,点击\"确定\"后返回调用程序。为此,需要在DLL工程中插入一个对话框资源(该对话框类名为CMyDlg),在p程序开头输入以下代码:
#include \"MyDlg.h\"
在p程序最后一行代码\"CDLLApp theApp;\"后面输入以下代码:
extern \"C\" _declspec(dllexport) int MyTest()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CMyDlg dlg;
Modal();
return 0;
}
对DLL编译后生成l程序。
然后,进入主程序TestDll,利用ClassWizard对命令按钮代码段添加下列代码:
void CTestDlg::OnButton1()
中国和乌兹别克斯坦建立外交关系。建交以来 {
// TODO: Add your control notification handler code here
typedef int(_cdecl *Connect)();
HINSTANCE hinstDLL=NULL;
hinstDLL=LoadLibrary(\"l\");
if (hinstDLL)
{
Connect Proc;
Proc = (Connect)GetProcAddress(hinstDLL,\"MyTest\");
int iTemp = Proc();
FreeLibrary(hinstDLL);
}
else
{
AfxMessageBox(\"Not found dll !\");
}
}
为了让TestDll能够调用l程序,需要让前者能够\"看见\" DLL程序。一个Windows程序定位DLL的次序是, 1.包含EXE文件的目录,2.进程的当前工作目录, 3.Windows系统目录, 4.Windows目录,5.列在Path环境变量中的一系列目录。为此,需要将l放到上述相关目录中,这样执行主程序TestDll,点击命令按钮就显示以下DLL运行结果,见图四。
图四
查看本文来源
南昌治疗龟头炎费用银川哪家医院治疗男科好
儿童助消化药大全
- 上一篇:用编写基于的精确定时程计划
- 下一篇:用友优普以多系统集成优势解项目制造管物业
-
滑鼠蛇的价格广西近年来价格一直在走低位置
汤羹2022年06月13日
-
溅水鱼吃什么溅水鱼喜食活饵位置
汤羹2022年06月13日
-
深圳检验检疫局截获多批活体昆虫收货人拿来位置
汤羹2022年06月13日
-
清道夫鱼能吃吗这些你都知道吗位置
汤羹2022年06月13日
-
你需要了解猫咪的生产过程位置
汤羹2022年06月13日
-
你适合养泰迪吗知识位置
汤羹2022年06月13日