iCAx开思工具箱

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 24739|回复: 2
打印 上一主题 下一主题

请教UF_PART_free_load_status函数的问题

[复制链接]
跳转到指定楼层
楼主
发表于 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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 支持支持
沙发
 楼主| 发表于 2005-5-8 09:02:14 | 只看该作者

马上注册登录,享用更多网站功能!

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

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

马上注册登录,享用更多网站功能!

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

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

本版积分规则

手板模型制作,在线3D打印服务

QQ|小黑屋|手机版|开思工具箱 CAD工具箱_CAM工具箱  

GMT+8, 2024-11-22 12:31 , Processed in 0.011630 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.3

© 2002-2024 www.iCAx.org

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