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

iCAx开思网

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

请教UF_PART_free_load_status函数的问题

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

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

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

x
我目前使用VC6+UG NX3进行二次开发
在UF_PART_open函数中,需要一个UF_PART_load_status_s结构体的实例。根据UG文档,在调用完UF_PART_open函数之后,需要调用UF_PART_free_load_status函数来将该实例释放,我的代码如下:
  
tag_t Tag;
UF_PART_load_status_s status;
UF_PART_open(strPath,[$Tag,&status)]
UF_PART_free_load_status([$status)]
此段代码在我自己的环境中使用正常。但是考虑到用户使用的是UG NX1,无法使用UF_PART_free_load_status函数。根据UG文档,转而使用UF_free_string_array和UF_free来释放。新的代码如下:
  
char* val=0;
tag_t Tag;
UF_PART_load_status_s status;
UF_PART_open(strPath,[$Tag,&status)]
_itoa(*status.statuses,val,10);
UF_free_string_array(status.n_parts,status.file_names);
UF_free_string_array(status.n_parts,[$val)]
UF_free([$status)]
  
之所以这样写,是因为根据UG文档,UF_PART_load_status_s结构体的file_names成员是一个char**,statuses成员是一个int*,而UF_free_string_array函数接受的参数是一个int和一个char**,所以我将statuses成员用_itoa转换为一个char*,再将其引用转递给UF_free_string_array函数。我目前的问题是,在打开文件时,如果没有发生错误,则UF_PART_load_status_s结构体的file_names和statuses成员都为空,在调试到_itoa(*status.statuses,val,10)时,就会发生异常退出。请问如何在打开文件没有发生错误时,用UF_free_string_array和UF_free来释放UF_PART_load_status_s结构体的实例。请高手指点,谢谢。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 赞一下!赞一下!
2
 楼主| 发表于 2005-5-8 09:02:14 | 只看该作者

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

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

x
3
发表于 2012-7-1 17:20:49 | 只看该作者

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

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2024-11-27 18:55 , Processed in 0.083975 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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