如何在DLL里建立对话框?

koma 2000-03-11 07:18:00
...全文
186 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZPoint 2000-03-12
  • 打赏
  • 举报
回复
有一个简单的方法:
在DLLs中建立DLG的class, 然后建立一个导出函数:
extern "C" BOOL PASCAL EXPORT showdlg()
{
CMyDlg pDlg;
pDlg.DoModal();
}
在你的程序中只需调用showdlg()函数。
——这是你要的吗?
wzq 2000-03-12
  • 打赏
  • 举报
回复
注意对话框中的资源ID不要和主程序冲突。
rosement 2000-03-12
  • 打赏
  • 举报
回复
使用最简单的方法是用VC的APPWIZARD建立一个MFC APPWIZARD(DLL)的程序,然后你就可以很方便的使用对话框了,插入对话框,为对话框建立一个新的类。再在CWINAPP中写一个输出函数如:
extern "C" BOOL PASCAL EXPORT ShowForm()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CDialogDLL dlg;
dlg.DoModal();
return TRUE;
}
然后在*.def文件中的
EXPORTS
; Explicit exports can go here
ShowForm;
写入ShowForm,编译程序,生成DLL.
测试DLL,写另一个程序:
void CTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
typedef BOOL( * ShowRosement)(void);
ShowRosement Func1;
HINSTANCE hRosement=NULL;
hRosement=LoadLibrary("DialogDLL.dll");
Func1=(ShowRosement)GetProcAddress(hRosement,"ShowForm");
Func1();
CView::OnLButtonDown(nFlags, point);
}
注意DIALOGDLL.DLL应该在WINDOWS的系统目录下,或在该C++程序下的DEBUG目录下,我已经测试过了,一切OK!
david 2000-03-12
  • 打赏
  • 举报
回复
不知你的DLL是什么类型的.
一般和普通情况差不多,插入对话框资源,生成基于CDialog的类,
声明变量后,再调用函数中用DoModal显示即可.
chkys 2000-03-12
  • 打赏
  • 举报
回复
要注意在建立的类里对resource.h的引用
chb 2000-03-11
  • 打赏
  • 举报
回复
先在资源中insert一个对话框,如果双击对话框生成对话框类
在dll的XXXapp.cpp中增加一个导出函数,函数中声明对话框类
然后调用DoModal()方法显示对话框就行了
Un1 2000-03-11
  • 打赏
  • 举报
回复
什么意思?
ObjectARX   1. ObjectARX的介绍:   ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。 与以往的 AutuCAD 二次开发工具 AutoLISP 和ADS不同,ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。所以,使用ARX编程的函数的执行速度得以大大提高。ARX 类库采用了标准的C++类库的封装形式,这也大大提高了程序员编程的可靠度和效率。 ObjectARX目前最新的版本是ObjectARX2009,它在原有ObjectARX的基础上,特别增加了XML的支持。XML是可扩展标记语言(eXtensible Markup Language)。它是应用软件与Internet的接口。通过支持XML,为ObjectARX开发网络协作应用提供了有力的支持。   2. 开发环境的设置:   运用ObjectARX进行二次开发,必须首先设置好ObjectARX的开发环境。目前常用的开发环境是Microsoft Visual C++ 6.0。同时,还需要安装ObjectARX SDK,ObjectARX SDK可以在AutoDesk公司的网站上免费下载。不同的AutoCAD版本对应相应的ObjectARX SDK的版本,目前常用的是ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i。这两个开发工具在设置上略有不同,将进行对比介绍。 安装好VC++和ObjectARX后,就可以开始设置开发环境了。 1) 设置INC和LIB文件寻找路径 INC和LIB文件寻找路径为VC++的环境参数,设置一次即可,对以后的所有项目均有效。 选择 Tools→Options …,出现Option对话框,选择Directories页,在Show Directories for中选择Include files,然后在Directories中加上ARX的INC目录路径c:\objectarx\inc(假定ARX的开发工具在c:\objectarx\中)。 在Show Directories for中选择Library files,然后在Directories中加上ARX的LIB目录路径c:\objectarx\lib(假定ARX的开发工具在c:\objectarx\中)。 2) 建立项目并设置编译环境 一般来说,开发的ObjectARX应用程序都需要支持MFC(如采用对话框等),因此,我们可以直接建立支持MFC的ObjectARX开发项目。每个项目均应设置编译环境,一般项目的编译环境可以有两个设置,分别为发布版本(Win32 Release)和调试版本(Win32 Debug)。在本节,介绍的是发布版本的设置,而调试版本的设置将在下一节介绍。ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i在设置上面存在着差别,下面分别进行介绍。 对于ObjectARX SDK for ACADR14 a. 选择 File→New ,选择projects页→MFC AppWizard,给定项目名(helloR14)及位置,选OK,在DLL type中选择MFC Extension DLL(using share MFC DLL),再选择Finish。建立项目。 b. 选择Build→Set Active Configration…→helloR14 Win32 Release,然后选OK。 c. 选择Project→Setting,出现Project Settings对话框,开始设置编译环境。 d. General中,Microsoft Foundation Classes选择Use MFC in a Share DLL。 e. C/C++→Code Generation中,Use run-time library选择Multithreaded DLL。 f. C/C++→Preprocessor中,Preprocessor definitions填入ACRXAPP,RADPACK,WIN32,NDEBUG,_WINDOWS。 g. Link→General中,Output file Name填入helloR14.arx。 h. Link→Input中,Object/library modules添加Acad.lib acedapi.lib rxapi.lib libacge.lib库文件名。 i. Lin

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧