iCAx开思工具箱

标题: 请教UF_PART_free_load_status函数的问题 [打印本页]

作者: silencehunt    时间: 2005-4-29 20:23
标题: 请教UF_PART_free_load_status函数的问题
我目前使用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结构体的实例。请高手指点,谢谢。
作者: silencehunt    时间: 2005-5-8 09:02
过了一个五一了,还是没人回复。大家帮忙呀
作者: SWORDINHAND    时间: 2012-7-1 17:20
过了十一,还 是不行




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3