iCAx开思工具箱

标题: 【原创】嘿嘿针对skywoodug调用mfc对话框旧话重提 [打印本页]

作者: mizzle    时间: 2004-10-28 16:00
标题: 【原创】嘿嘿针对skywoodug调用mfc对话框旧话重提
这里有不少和欧一样是初学者,偶在这里学了不少东东,现在再把这些东西换回来,送给和欧一样的新手吧,可能入门快点。
前面有zzz版主发了个手把手的ug二次开发,偶这个也算手把手吧。本来想做成录像的,弄了半天不好使,555555555。有哪位大虾哪天有空教教欧,小女子在这里谢过了。嘿嘿。
好了言归正传吧。
首先建立一个新的vc的工程,我们通常是建立一个MFC App Wizard(exe)的,现在建立的是MFC App Wizard(dll)工程。如图一
作者: mizzle    时间: 2004-10-28 16:03
当然了欧还是用的vc6和ugnx1,键盘dd已经用刀.net和nx3了,偶还不会,555,只能用这些旧工具了。
建立好工程后,插入一个对话框,由于欧门建立的是dll工程,所以生成的框架没带。在vc里的insert里的Resource里如图
作者: mizzle    时间: 2004-10-28 16:06
然后根据这个对话框,建立一个新的对话框的类,点击刚才建立的对话框,右键然后classwizard然后选择create a new class,ok,然后输入一个名字。如图
作者: mizzle    时间: 2004-10-28 16:07
2
作者: mizzle    时间: 2004-10-28 16:07
3
作者: mizzle    时间: 2004-10-28 16:07
4
作者: mizzle    时间: 2004-10-28 16:09
然后在ug_mfc.cpp里加入#include "ug_mfc_dlg.h"
  
                                    #include <uf.h>
头文件。
在最后面加入
extern "C" __declspec(dllexport) void ufusr(char *param, int *retcode, int rlen)
{
  
  UF_initialize();
  
  Cug_mfc_dlg dlg;
                    dlg.DoModal();
  UF_terminate();
}
extern "C" int ufuser_ask_unload(void)
{
  return(UF_UNLOAD_UG_TERMINATE);
}
如上这些代码。
作者: mizzle    时间: 2004-10-28 16:10
对了,还有在project->setting里设置link里的output file name里输入一个合适的路径,否则ug出错,开始欧方的地址里有中文,还有e:\c++等都不行,在object/library modules里加入libufun.lib libugopenint.lib 这两个文件。
作者: huashanyjj    时间: 2004-10-28 16:13
ding
作者: mizzle    时间: 2004-10-28 16:17
next
作者: mizzle    时间: 2004-10-28 16:18
the next
作者: mizzle    时间: 2004-10-28 16:19
注意输出路径的设置。欧是这么设的
作者: mizzle    时间: 2004-10-28 16:20
好了,可以便以输出了。进入ug
作者: mizzle    时间: 2004-10-28 16:21
显示那个mfc里的对话框,嘿嘿,什么都没有,只是给大家一个实例的说。
作者: mizzle    时间: 2004-10-28 16:24
嘿嘿,这是一个基本的过程,希望对大家能有用的说。很简单的,自己想要做什么东西都可以,除了加上
extern "C" __declspec(dllexport) void ufusr(char *param, int *retcode, int rlen)  
{  
  
  UF_initialize();  
  
  Cug_mfc_dlg dlg;  
                    dlg.DoModal();  
  UF_terminate();  
}  
extern "C" int ufuser_ask_unload(void)  
{  
  return(UF_UNLOAD_UG_TERMINATE);  
}  
  
这些代码是把mfc和ug结起来的,再加上需要的头文件,其余的和你仅仅在vC里编成是一样的。关键是加强VC,偶就是C根本不行,现在正在看,希望大家多多指教的说
作者: wflying    时间: 2004-10-28 16:38
呵呵,是师姐吧!好东西,多谢!
作者: jackezhang    时间: 2004-10-29 00:31
就一个字,赞!希望以后jj能多出点精品贴。不过感觉jj好像都用MFC,UG自带的对话框不怎么用?
作者: mizzle    时间: 2004-10-29 08:36
ug自带的东东,zzz版主不都发了一个手把手吗,偶在发没必要了吧,嘿嘿。说实话,也很忙,而且欧开始用ug自身的也就2、3周。
作者: fourwood    时间: 2004-10-29 10:53
Unigraphics已经可以支持.NET开发工具了,在.NET下很容易实现UG与用户程序之间的通讯。
这种技术还有用处吗?
作者: 深夜摔键盘    时间: 2004-10-29 12:30
有必要的。
用UG OPEN API开发的程序,向下兼容没问题。
倘若使用.net在NX3上作开发,在UG18, UGNX1,UGNX2上能不能正常运行,还很难说。
作者: mizzle    时间: 2004-10-29 15:40
嘿嘿,键盘dd这几天很忙吧,
作者: skywood    时间: 2004-11-2 19:08
不错不错,写得很详细的说。
作者: herryweiwei    时间: 2004-11-8 15:25
我照JJ说的一步一步的做,在vc里面编译也没有问题,可在ug中调用dll文件后就报错了,如下,何解啊
作者: herryweiwei    时间: 2004-11-8 15:50
不麻烦JJ了,原来实动态跟静态的区别,不过真想知道为什么
作者: Patton_icax    时间: 2004-11-10 12:13
fourwood wrote:
Unigraphics已经可以支持.NET开发工具了,在.NET下很容易实现UG与用户程序之间的通讯。  
  这种技术还有用处吗?

在NX3上技术的实现情况怎末样?具体介绍一下好吗?
作者: jambo436    时间: 2004-11-11 20:54
我照着做也出现了herryweiwei一样的错误,到底是什么原因呢?
作者: mizzle    时间: 2004-11-12 08:05
他不是都说了吗,
作者: LIUCHANGLIN    时间: 2010-12-22 20:50
多谢师太!




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3