|
马上注册,结交更多同行朋友,交流,分享,学习。
您需要 登录 才可以下载或查看,没有帐号?注册
x
1) 在VC的应用程序创建向导中选择MFC AppWizard(dll);
2) 选择应用程序类型为:Regular DLL using shared MFC DLL;
3) 结束创建应用程序的过程;
4) 将UG库文件(libugopenint.lib,libufun.lib)加入所创建的项目。
5) 结束
熟悉UG开发的人都知道UG应用程序的入口函数是ufsta,所以下一步的工作就是在应用程序中添加UG/Open函数入口ufsta。这个过程很简单,可以把UG所提供的例子程序中的主函数直接复制过来,或者采用UG/Open AppWizard创建一个项目,然后把主函数复制过来就可以了。
一个例子的源程序
以下是我们做的一个在UG中显示模态对话框的例子,为了方便起见,删除了所有的注释语句。CMyDialog是采用MFC创建的一个对话框类,函数 DisplayDialog的功能是显示显示模态对话框。其他的代码基本上都是由MFC AppWizard或者UG/Open AppWizard创建的,十分简单。由此可以看出,UG应用程序经过这样改造之后,调用其它的MFC类已经不成问题。因此就实现了利用MFC来开发UG 的应用程序的功能。
#include "stdafx.h"
#include "ccc.h"
//以下代码与UG有关
#include
#include
#include
#include "resource.h"
#include "MyDialog.h"
void DisplayDialog()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CMyDialog dlg;
dlg.DoModal();
}
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
{
int errorCode = UF_initialize();
DisplayDialog ();
if ( 0 == errorCode )
{
errorCode = UF_terminate();
}
}
extern "C" void ufusr_cleanup(void)
{
}
extern "C" int ufusr_ask_unload( void )
{
return( UF_UNLOAD_UG_TERMINATE );
}
//以下代码由MFC AppWizard创建
BEGIN_MESSAGE_MAP(CCccApp, CWinApp)
//{{AFX_MSG_MAP(CCccApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
CCccApp::CCccApp()
{
}
CCccApp theApp;
4. 结束语
本文中提出的应用程序在下列环境下运行通过:
操作系统:Windows 2000 Server (Service Pack 2),
UG版本:UG 18.0微机版
编译环境:Microsoft Visual C++ 6.0 |
|