在Dll中创建对话框并调用

1、第一步创建一“MFC AppWizard (dll)”工程,接下来选择“Regular Dll using shared MFC DLL”,点击“Finish”。

2、添加一对话框资源到工程中,从菜单中选择Insert->Resource,添加一“Dialog”

选择“New”,至此对话框已添加到DLL工程中。

3、为对话框添加一新类,如:CTest,基类为CDialog。

4、在MFCDLL.cpp中(因创建的工程为MFCDLL)添加接口函数:

extern "C" __declspec(dllexport) void Show()
{
  AFX_MANAGE_STATE(AfxGetStaticModuleState());
  CTest test;
  test.DoModal ();
}

别忘了在文件中添加: #include "Test.h":),大功告成,编译吧! 

5、用VC新建一对话框工程,在一按钮点击事件中添加如下代码:

typedef void (WINAPI * TESTDLL)();
HINSTANCE hmod;
hmod = ::LoadLibrary ("mfcdll.dll");
if(hmod==NULL)
{
  AfxMessageBox("Fail");
}
TESTDLL lpproc;
lpproc = (TESTDLL)GetProcAddress (hmod,"Show");
if(lpproc!=(TESTDLL)NULL)
  (*lpproc)();
FreeLibrary(hmod);

6、试试看,是不是DLL中对话框显示出来了:)

测试环境:VC6.0+Win2000

本文配套源码

时间: 2024-11-02 12:56:51

在Dll中创建对话框并调用的相关文章

Win32 DLL和MFC DLL 中封装对话框

现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题.这里我们从Win32   DLL和MFC   DLL两个方面来分析并解决这个问题.           1.Win32   DLL               在Win32   DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件.然后使用DialogBox或者CreateDialog这两个函数(或相同作用的其它函数)来创建对话框,并定义

如何在dll中创建CFrameWnd?

问题描述 请大家帮帮忙?新建一个mfcdll.在exe程序中调用该DLL的中某一函数,在这个函数里创建窗体(cframewnd),用create创建失败.困扰我好几天了. 解决方案 解决方案二:导出DLL中要使用MFC资源,记得在你的导出函数内第一行加上AFX_MANAGE_STATE(AfxGetStaticState())解决方案三:加了AFX_MANAGE_STATE(AfxGetStaticState())解决方案四:DLL中创建窗体的时候在那里出现了错误?如果Creat都不成功的话那应

Android中创建对话框(确定取消对话框、单选对话框、多选对话框)实例代码_Android

Android中可以创建三种对话框.确定取消对话框.单选对话框.多选对话框 android中的确定取消对话框演示示例 Android中使用单选对话框的演示案例 android中使用多选对话框的演示案例 实现代码如下 修改activity_main.xml文件 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.

详解Linux交互式shell脚本中创建对话框实例教程

当你在终端环境下安装新的软件时,你可以经常看到信息对话框弹出,需要你的输入.对话框的类型有密码箱,检查表,菜单,等等.他们可以引导你以一种直观的方式输入必要的信息,使用这样的用户友好的对话框的好处是显而易见的.如下图所示:     当你写一个交互式shell脚本,你可以使用这样的对话框来接受用户的输入.whiptail可以在shell脚本中创建基于终端的对话框,消息框的过程,类似于Zenity或xdialog GUI脚本代码.预先安装在所有的Linux发布版本中. 下面来看看whiptail的用

Android中Dialog对话框的调用及监听

转自:http://www.cnblogs.com/xiaofeixiang/p/4084056.html Android中经常会需要在Android界面上弹出一些对话框提示用户,比如App的退出的时候都会有各种框来挽留你的心,支付宝的时候输入密码的密码框,非常常见及其实用的功能,类似于JS中的alter,C#中C/S中常用MessgeBox,总而言之就是一个功能弹,弹,弹,本文就简单的叙述一下Dialog的各种弹框使用及监听,顺便写了一个简单的自定义弹框,接下来请看正文: 一般对话框 先看下整

c++-C#调用C++动态库DLL中的函数

问题描述 C#调用C++动态库DLL中的函数 C#调用C++动态库DLL中的函数,此函数参数中有bool(小写)类型的参数.c#该如何进行转换 解决方案 C#调用C++动态库dllC#调用C++动态库(dll)C#动态调用C++编写的DLL函数 解决方案二: bool类型的true 或false一般对应1和0.有的语言没有bool类型的.传递参数时可用整型替代. 解决方案三: public static extern int RD_CloseCom(bool IsOpen); 解决方案四: 在C

如何使用DLL中的资源

长久以来,把界面的信息单独存为一个DLL一直是很多商业软件的作法,比如VC.InstallShield等等,这样做的好处是,如果要做多语言版本,只要写出不同的DLL来,在主程序中使用时调用不同的DLL就行,当然现在还有一种流行的方法是使用INI,读存也非常方便.最近在网上转了转,发现竟没有一篇关于如何读取DLL中资源的文章,虽然Iczelion的Win32ASM教程中第26课"Splash Screen"讲到了读取DLL中的图片,但不知是这种问题太简单了还是其它什么原因,Iczelio

在DLL中使用资源

现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题.这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题. 1.Win32 DLL 在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件.然后使用DialogBox或者CreateDialog这两个函数(或相同作用的其它函数)来创建对话框,并定义你自己的对话框回调函数处理对话框收到的消息.下面通过一个具体实例

MFC的dll中控制资源问题

有程序EXE和DLL,其中DLL中有1个函数用来显示对话框,被EXE调用.当EXE和DLL都为Release或Debug时,没有任何问题,但EXE为Release.DLL为Debug时,就会出错.该DLL是用VC提供的MFC Extension DLL,函数的代码如下:HINSTANCE hInstOld = AfxGetResourceHandle(); // 该句出错HINSTANCE hInstNew = GetModuleHandle("T01Test.dll");AfxSet