iCAx开思网

标题: 在UG中选择多个特征 [打印本页]

作者: hchhyl    时间: 2005-9-15 15:15
标题: 在UG中选择多个特征
各位大哥,我在使用UF_UI_select_feature函数时总用问题,我不知道什么原因。代码附下,在注释里有问题说明,望指点。

void select_multi_feature(void)
{
        int count=0,response;
        tag_t **feature_tag=malloc(100*sizeof(tag_t));
        char message[200]={""};

    int i=0;
                char feature_str[20];
                tag_t tag_h=NULL_TAG;
       
        UF_UI_select_feature(
                "选择特征" ,/* <I>
                Cue line message to display.
                */
                NULL ,/* <I>
               Must be NULL or castable to UF_UI_feat_sel_type_t*.
               */
                &count ,/* <O>
             Count features selected
             */
                feature_tag ,/* <OF,len:count>
                       Allocated array of selected feature tags. After use
                       must be freed with UF_free
                       */
                &response  /* <O>
                response:
                         UF_UI_BACK
                         UF_UI_CANCEL
                         UF_UI_OK
                */
        );

        if (response==UF_UI_OK)
        {
        //*      
                // 执行循环的时候总是内部报错***************
                sprintf(message,"选择特征的数量=%d\n",count);
                for(i=0;i<count;i++)
                {
          tag_h=*(*feature_tag+i);
                  sprintf(feature_str,"第%d特征tag=%d \n",i+1,tag_h);
                  strcat(message,feature_str);
                }
                //*/
                //但用这个sprintf就没问题*******************
                //sprintf(message,"count=%d,%d,%d",count,*(*feature_tag),*(*feature_tag+1));
        uc1601(message,1);
        }

   free(feature_tag);

}

[ 本帖最后由 hchhyl 于 2005-9-15 15:23 编辑 ]
作者: along533    时间: 2005-9-16 10:56
tag_h是tag_t类型的值,如果作为整型值用,要转换一下
sprintf(feature_str,"第%d特征tag=%d \n",i+1,tag_h);
改成:

sprintf(feature_str,"第%d特征tag=%d \n",i+1,int(tag_h));
作者: hchhyl    时间: 2005-9-16 12:19
tag_t本身就是int类型,不用转换,我的这个程序莫名其妙好了
作者: pzytony    时间: 2005-9-17 13:35
你还没有掌握UG函数中参数的设置方法!

改成:
tag_t *feature_tag;         
UF_UI_select_feature(…… & feature_tag ……)

还有,建议你用UF_CALL,参见《UG应用开发教程与实例精解》 P80~83
作者: hchhyl    时间: 2005-9-18 12:51
谢谢楼上,我已经知道了




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3