找回密码 注册 QQ登录
开思网工业级高精度在线3D打印服务

iCAx开思网

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

关于在UG中使用MFC的总结,并顺便向darkhorse问好

[复制链接]
跳转到指定楼层
1
发表于 2003-9-27 19:38:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多同行朋友,交流,分享,学习。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我是张军波,偶然看到这里关于我以前的一篇文章的讨论,很高兴,但是很多人都反映按照我的做法不能正确的调用MFC,特此再把新作和一些调用MFC的经验总结一下
  
关于在UGOpen中使用MFC,可以看看这篇文章:
www.e-works.net.cn/ewkArticles/Category29/Article15522.htm
www.e-works.net.cn/ewkArticles/Category29/Article15522.htm
  
如果需要在MFC生成的对话框中,调用UG的对话框选择对象,需要先这样
//锁定资源
UF_UI_lock_ug_access(UF_UI_FROM_CUSTOM);
...
//调用选择对象的函数,比如选择特征
UF_UI_select_feature
//资源解锁
UF_UI_unlock_ug_access(UF_UI_FROM_CUSTOM);
  
欢迎继续讨论这个话题

      OK了..-darkhorse ::r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2003-10-9 08:12:11 | 只看该作者
张军波博士你好,我是李俊亭的同学,早知道你的大名,也见过你,我现在工作需要做点UG的二次开发,初级开始,有些问题不清楚,还想请教你,我看了你的文章,按照做,完全可以,但是你是如何进行出错处理的呢?还有我的一个程序,关于注册ACTIONS总是不成功,如下
  
static UF_MB_cb_status_t set_attr();
static UF_MB_cb_status_t new_part();
  
static UF_MB_action_t action_table[]=
{
  {"SET_ATTRIBUTE",set_attr,NULL},
  {"CREATE_NEW_PART",new_part,NULL},
  {NULL,NULL,NULL}
};
  
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
{
    /* Initialize the API environment */
    int errorCode = UF_initialize();
  
    if ( 0 == errorCode )
    {
        /* TODO: Add your application code here */
       
        UF_MB_add_actions (action_table);                           
        /* Terminate the API environment */
        errorCode = UF_terminate();
    }
}
  
错误提示:
D:\Ccc\Ccc.cpp(81) : error C2440: 'initializing' : cannot convert from '' to 'enum UF_MB_cb_status_e (__cdecl *)(void *,void *,struct MB_activated_button_s *)'
        None of the functions with this name in scope match the target type
D:\Ccc\Ccc.cpp(82) : error C2440: 'initializing' : cannot convert from '' to 'enum UF_MB_cb_status_e (__cdecl *)(void *,void *,struct MB_activated_button_s *)'
        None of the functions with this name in scope match the target type
  
菜单的ACTIONS是SET_ATTIBUTE和CREATE_NEW_PART。
3
发表于 2003-10-14 13:27:01 | 只看该作者
你这样做当然不对了,应该将这两个函数定义为下面的格式
static UF_MB_cb_status_t set_attr(UF_MB_widget_t w, UF_MB_data_t client_data,  UF_MB_activated_button_p_t button);  
  
static UF_MB_cb_status_t new_part(UF_MB_widget_t w, UF_MB_data_t client_data,  UF_MB_activated_button_p_t button);
4
发表于 2003-11-24 16:08:50 | 只看该作者
不好意思,你的文章怎么看不到呢,能不能发到我信箱一份mizzle@hit.edu.cn
谢谢了
5
发表于 2003-12-16 13:34:19 | 只看该作者
张博士你好:
      我也是看到你的文章,开始用MFC dll进行开发的.只是我想实现从一个文本文件中读取数据,比如坐标点赋值给BLOCK等,从而实现造型,总是出错,无法读出文本文件中的数据,出现了Debug Assertion Failed!错误,UG退出.
      我读取文件使用了几种方法都不成:CFILE 和 CARCHIVE联合; FOPEN; FREOPEN等,均出错.
      请问你有没有好的办法?请指教.
程序如下:
  
extern "C" DllExport void ufsta( char *param, int *returnCode, int rlen )
{
    /* Initialize the API environment */
    int errorCode = UF_initialize();
  
    if ( 0 == errorCode )
    {
        /* TODO: Add your application code here */
      CFile SourceFile;//数据文件
      CString SourceData;//定义一临时变量保存一条记录
      SourceFile.Open("aa.txt",0,NULL);
      CArchive ar([$SourceFile,CArchive::load)]
  
    //  LPCTSTR  lpsz;
      ar.WriteString(SourceData);
      for(int t=0;t<2;t++)
      {
        SourceData="日期,开盘,最高,最低,收盘,成交量,成交金额";
      }
      
  
      while(NULL!=ar.ReadString(SourceData))//循环读取文件,直到文件结束
        {
          
  
          if(SourceData=="日期,开盘,最高,最低,收盘,成交量,成交金额 "||SourceData=="")
          continue;//跳过文件头部的提示信息
          //分析并填充//  
    //      MessageBox(SourceData);
          int nYear,j;
          for(j=0;j<=6;j++)
          {
            CString Year= SourceData.Left(SourceData.Find(","));//截取年前面的字符串
            nYear=atoi(Year);//类型转换
//            MessageBox("year  " + Year);
            SourceData=SourceData.Right(SourceData.GetLength()-SourceData.Find(",")-1);//将年以及前面的字符删除。
          //  MessageBox(SourceData);
  
          }
        }
  
        /* Terminate the API environment */
        errorCode = UF_terminate();
    }
  
    /* Print out any error messages */
   &nbsprintErrorMessage( errorCode );
}
  
我的邮箱:younghualin@163.com
6
发表于 2003-12-16 13:40:01 | 只看该作者
其中aa.txt是格式化的文本文件,其格式为:
日期,开盘,最高,最低,收盘,成交量,成交金额  
1996年10月10日,0,10,6,8,45,66,
1996年11月10日,0,11,6,8,45,78,
程序在执行到
while(NULL!=ar.ReadString(SourceData))//循环读取文件,直到文件结束
时,就出错.
  
该段程序在MFC exe中执行没有问题.
  
请问这是怎么回事.
  
谢谢
7
发表于 2006-2-18 16:37:09 | 只看该作者
大家好!www.e-works.net.cn/ewkArticles/Category29/Article15522.htm 我上不了。哪位仁兄有张博士的那篇文章能不能给我发一下。我的邮箱:wufei0108@tom.com 不胜感激!
8
发表于 2006-2-20 18:00:03 | 只看该作者
9
发表于 2006-2-21 09:51:30 | 只看该作者
能再问一个超级菜鸟的问题吗?Document到底是什么?在UG的某一安装文件夹里还是在哪里能看到?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-27 15:30 , Processed in 0.038512 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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