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

iCAx开思网

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

UG二次开发,菜单操作注册无效?

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

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

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

x
折腾了几天,没有进展,在这里向各位大侠请教:
  
在C#的MyForm里,定义了静态变量
   private static Session theSession;
   private static UFSession theUfSession;
   private static UFMb.Action actionTable;   
Main()函数如下:
   public static void Main()  
   {
   theSession = Session.GetSession();
   theUfSession = UFSession.GetUFSession();
  
   actionTable.action_cb.cb = new UFMb.CallbackT(SAMPLE_APP__action1);
   actionTable.action_name = "SAMPLE_APP__action1";
  
   theUfSession.Mb.AddActions(ref actionTable);
   }
回调函数如下:
   public static UFMb.CbStatus SAMPLE_APP__action1(IntPtr inp1,IntPtr inp2,ref MbActivatedButton button)
   {
   UFMb.CbStatus CbStatus = UFMb.CbStatus.CbContinue;
   theForm = new MyForm();
   theForm.Show();
   return CbStatus;
   }
  
将MEN文件及DLL放到startup下,启动NX3.0之后,点击菜单按钮,弹出错误对话框:没有登记该按钮上的操作。
通过菜单条报告工具查看信息,对应的菜单按钮:
Actions: <actions not registered>
显然没有注册成功。
  
请高人指点,谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
发表于 2005-1-11 08:35:30 | 只看该作者
另外,在VC下,如果actionTable是局部变量而不是静态变量,注册也失败?
3
发表于 2005-1-20 13:42:10 | 只看该作者
各位老大,伸手救救我吧!
4
发表于 2005-1-20 17:21:19 | 只看该作者
你是做内部开发还是外部开发?
5
发表于 2005-1-20 19:07:41 | 只看该作者
你好,我是作内部开发,恳请指点,谢谢!
6
发表于 2005-1-20 20:55:57 | 只看该作者
你的DLL的体系结构有点问题
7
发表于 2005-1-20 20:56:43 | 只看该作者
最好用UF的菜单入口函数ufsta来实现菜单操作注册
8
发表于 2005-1-23 11:55:41 | 只看该作者
你说的很有道理,好像就是没有执行到似的,但C#下动态库的入口可以用Main()函数的。
按你的建议,我用ufsta,仍然是不行,真是没有办法。。。。。。
9
发表于 2005-1-24 20:45:22 | 只看该作者
这是我在vc里的成功例子,除了下面的代码,其他没有任何变量声明。实现一个菜单调用一个函数。希望对你有所借鉴。对你的代码没有看的太清除。
static UF_MB_cb_status_t Load_Library(
    UF_MB_widget_t             widget,
    UF_MB_data_t               client_data,
    UF_MB_activated_button_p_t call_button )
{  
    DisplayDialog();
    return( UF_MB_CB_CONTINUE);
}
static UF_MB_action_t actionTable[]=
{
  {"Load_Library",Load_Library,NULL},
  {NULL,NULL,NULL}
};
extern void ufsta( char *param, int *returnCode, int rlen )//主函数
{
    int errorCode = UF_initialize();
    if ( 0 == errorCode )
    {
        UF_MB_add_actions(actionTable);
        errorCode = UF_terminate();
    }
}
10
发表于 2005-1-24 22:05:20 | 只看该作者
新的开发环境不懂,不过Ug里面带的例子吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-12-26 14:24 , Processed in 0.032780 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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