找回密码 注册 QQ登录
一站式解决方案

iCAx开思网

CAD/CAM/CAE/设计/模具 高清视频【积分说明】如何快速获得积分?快速3D打印 手板模型CNC加工服务在线3D打印服务,上传模型,自动报价
打印 上一主题 下一主题

【原创】动态连接库与UG二次开发

[复制链接]
11
发表于 2004-9-30 16:45:53 | 只看该作者
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
12
发表于 2004-9-30 17:21:07 | 只看该作者
楼上兄弟所言甚是。
时间片这个东西我用的含糊。起因是,书上是说线程是CPU的最小分配单位,每个CPU时刻只能运行一个线程。但是我觉得这个线程的运行也不能是孤立的,它还需要所属进程的一些资源,这些资源也是被WINDOWS内存以页面来组织的,缺了,就要加载,时间片里的东西应该是一个线程的运行所必须的资源。
  
二:动态连接库在VC++6中的第二种生成方式,支持MFC的dll
前面花了很长的篇幅来讲win32常规的dll,因为那个是windows动态连接库的基本结构,它仅支持win32 sdk编程,不支持MFC。理解它,足可以理解UG的二次开发内幕。对于没有多少windows环境程序设计经验的初学者,可能太注重UG的示例中的规范,而对于windows程序设计的大鸟们,这些东西一看就明其里。倘若UG中用户开发的程序运行机制搞清楚了,那么扩展性就强悍了,你可以用数据库,用MFC,用COM,用钩子!倘若不管这些,只是UG让你用啥,你就用啥,太过于温顺了!
VC工程向导中,采用MFC WIZARD(DLL)方式可以生成支持MFC的动态连接库工程,实际上,你只要在win32常规的dll工程中添加一些MFC的头文件和相应的库文件也可以支持MFC。安全起见,还是利用向导来生成模板代码最好!
在MFC AppWizard[dll]下生成DLL文件又有三种方式
(1)常规DLL静态链接到MFC。
(2)常规DLL动态链接到MFC
两者的区别是:前者使用的是MFC的静态链接库,生成的DLL文件长度大,一般不使用这种方式,后者使用MFC的动态链接库,生成的DLL文件长度小,可以回想一下这个帖子最开头所讲过的东西。
动态链接到MFC的规则DLL所有输出的函数应该以如下语句开始:  
AFX_MANAGE_STATE(AfxGetStaticModuleState( ));此语句用来正确地切换MFC模块状态,这个也许就是许多兄弟在UG开发过程中使用MFC时,出现许多莫名其妙的故障得最大原因,在UG二次开发中,这个切换MFC状态模块的语句应该在ufusr/ufsta函数中进行!

(3)就是楼上老兄说得MFC扩展DLL,这种DLL特点是用来建立MFC的派生类,Dll只被用MFC类库所编写的应用程序所调用。这种扩展得MFC DLL和Extension DLLs 和常规得MFC DLLs不一样,它没有一个从CWinApp继承而来的类的对象,编译器默认了一个DLL入口函数DLLMain()作为对DLL的初始化,你可以在此函数中实现自己得dll运行环境得初始化。
13
发表于 2004-10-7 22:18:06 | 只看该作者
顶啊
14
发表于 2004-10-8 15:21:43 | 只看该作者
15
发表于 2004-10-11 11:23:32 | 只看该作者
顶。
16
发表于 2004-10-11 17:34:21 | 只看该作者
顶,学习中!
17
发表于 2004-10-11 19:21:59 | 只看该作者
这些天工作重,一直没有精力都没有继续下去把MFC DLL搞完整了。很有点虎头蛇尾的感觉。关键这块内容涉及的知识多了一些,我想等过一段日子,我想把这些东西整理成一份论文的形式(课题凑数的论文),届时会贴出来,让各位指正。
18
发表于 2004-10-11 20:50:09 | 只看该作者
深夜摔键盘 wrote:
这些天工作重,一直没有精力都没有继续下去把MFC DLL搞完整了。很有点虎头蛇尾的感觉。关键这块内容涉及的知识多了一些,我想等过一段日子,我想把这些东西整理成一份论文的形式(课题凑数的论文),届时会贴出来,让各位指正。

期待中......
"课题凑数的论文"何解?
19
发表于 2004-10-11 23:23:36 | 只看该作者
呵呵,只是传说中的说法:一个课题要进行鉴定,得有一定数量的论文打底。。。
20
发表于 2004-10-13 09:37:37 | 只看该作者
可能这么来搞二次开发,有点误入歧途的意思。
重要还是学习UG,设计与加工的知识,熟悉它的API,做有用的事才是正经路数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3D打印手板模型快速制作服务,在线报价下单!

QQ 咨询|手机版|联系我们|iCAx开思网  

GMT+8, 2024-12-26 21:01 , Processed in 0.027875 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

快速回复 返回顶部 返回列表