iCAx开思网

标题: 【求助】调试好的DLL如何驻留在UG中自动运行。 [打印本页]

作者: dongyoudong    时间: 2003-7-5 13:06
标题: 【求助】调试好的DLL如何驻留在UG中自动运行。
几位高手一定帮忙,呜呜。
作者: tsingtsang    时间: 2003-7-5 13:58
驻留?他是解释性的语言!
作者: dongyoudong    时间: 2003-7-5 20:19
可能我的意思表达不清楚,我产意思是UG启动,DLL与UG一起启动和关闭。另外还有一个问题是DLL如何正式的加载。
作者: darkhorse    时间: 2003-7-5 21:56
可以吗?
作者: spline    时间: 2003-7-7 07:52
这个是卸载的方式,不可以的。这个问题我也在考虑,不过还没有什么结果。
作者: dongyoudong    时间: 2003-7-7 10:32
这个方式是不行的,我在建project时都选上的,要自己去打开UG文件中的运行才行,请几位大侠帮助研究一下。
作者: pinkwall    时间: 2003-7-7 21:15
我有个办法,不过用的是mfc dll
作者: spline    时间: 2003-7-8 07:54
说来听听?有什么高见?
作者: pinkwall    时间: 2003-7-8 14:14
大概说说吧
  
好像是我按照这里的一个例子做的
  
在mfc dll 中加入入口函数
  
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
  
*.cpp
  
中好像还加了点儿东西,忘了,我想想
  
然后把dll放到application和startup里面
  
好像用不着menuscript
  
打开ug后 直接可以出现对话框
作者: pinkwall    时间: 2003-7-8 14:15
我这儿也是那天做例子的时候发现的
  
还没细捉摸呢
作者: spline    时间: 2003-7-8 14:57
我隐约觉得你说的是队的,
不过,按照你的说法,我还没有试出来。
继续关注!!!!!
作者: pinkwall    时间: 2003-7-8 15:10
个人人为 mfcdll 可以不受菜单控制
  
个人感觉菜单有点儿象vc的消息映射,只有调用menuscript中的
  
“映射“,才可以调用相关的函数,也就是调出对话框,但是dll其实已经被加载了
  
mfcdll应该不受这个限制。
  
他应该是一个自动加载的库 如果有ufsta()这个入口函数
  
那么在ug启动时,dll自动加载 并且执行 ufsta
  
如果在这个函数中,加入打开对话框命令,那么
  
对话框应该可以实现和ug的同步
  
还有个想法
  
ug默认生成的代码 在ufsta中调用的是
UF_MB_add_styler_actions ( actions )  
  
如果换成
UF_STYLER_create_dialog ( "test.dlg",
           CHANGE_cbs,      /* Callbacks from dialog */
           CHANGE_CB_COUNT, /* number of callbacks*/
           NULL,        /* This is your client data */
           response )
也应该可以实现同步
  
刚有的想法,还没做例子验证
作者: pinkwall    时间: 2003-7-8 23:02
mfc dll 的对话框同步没问题
  
正在研究ug 对话框如何同步
作者: spline    时间: 2003-7-9 10:14
试验成功了,确实如你所描述的,可以自动装入。------果然厉害!佩服佩服!
    其实那个动态库放在startup目录下就可以了,不必在放在application目录下。另外,非mfc dll也应当可以的。
    “那么在UG启动时,dll自动加载” 这个我是不敢太确信的。主要的理由是,在调试状态,我把dll文件放在application目录下面(不放在startup目录下面)。遇到dll中的断点,它并不停下来回到调试状态。
  
    经过我的调试,我发现,一个比较有趣的现象,所有的UF函数,虽然都执行了,但都不起作用;而那些非UF函数都起了作用的。我假设:
  1、启动和装入菜单的过程,包括装入startup下的dll,只是UG的初始化过程,当时UG还没有完全启动起来。它只是在读取一些设置。
  2、UG对自己的函数都作了相关的处理。确保了函数不在不正确的状态下运行。
    如果的假设是正确的,那么,这个功能所能起的作用就很有限了。
作者: dongyoudong    时间: 2003-7-9 10:54
Pinkwall好厉害噢,版主要给他加点。同时十分感谢。




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3