iCAx开思工具箱

标题: 急求:应用UF_UI_open_part 出错原因 [打印本页]

作者: dchl0301    时间: 2006-12-3 21:06
标题: 急求:应用UF_UI_open_part 出错原因
调试的时候提示说内存冲突,不解,想请大家来帮帮忙,致谢!
源代码:
int MY_open()
{
       
        UF_UI_err_t error_handler;
        char * file_name = "A.prt", err_message[] = "";
        logical use_display_file = FALSE;
        tag_t part_tag = NULL_TAG;
        int response;
        const char *message = "part open error";
        UF_PART_load_status_t part_status;

        error_handler.type = UF_UI_open_part_fun;
    error_handler.fun.open = my_error_handler;
        error_handler.fun_data.size = strlen ( message ) + 1;
    error_handler.fun_data.data = message;
       
    response = UF_UI_open_part (&error_handler, file_name, &use_display_file, &part_tag, &response, &part_status);
        UF_get_fail_message(response, err_message);
        if ( part_status.statuses != NULL )
        UF_free ( part_status.statuses );
    if ( part_status.file_names != NULL )
        UF_free_string_array ( part_status.n_parts ,part_status.file_names );

        uc6476(1);
       
   if ( part_tag==NULL_TAG )
           return 1;
   else
           return 0;
          
}
作者: dchl0301    时间: 2006-12-3 21:40
是不是和对话框的选项设置有关系啊?
(ps:我用的版本是16.0的)
作者: dchl0301    时间: 2006-12-6 15:55
还望用过这个函数的好心人能帮帮忙,指点一下,不胜感激啊!
作者: mizzle    时间: 2006-12-7 10:51
char * file_name = "A.prt",
改为 char *file_name;
char name[] = "A.prt"
int len = strlen(name);
file_name = new char[len+1];
strcpy(file_name,name);当然用完后delet。
或者你直接定义一个char的数组
char file_name[133] = "A.prt";
UF_UI_open_part (&error_handler,& file_name, &use_display_file, &part_tag, &response, &part_status);
定义的指针要分配空间才能用的
作者: jjf1120    时间: 2006-12-9 23:25
这个错误的原因如楼上所说
楼主有兴趣可以看看这个https://www.xiansky.com/posts/list/215.page#590
(我在西安天空网https://www.xiansky.com用你的问题做例子说明了UF_UI_open_part 这个函数的使用以引起其他人注意这个问题)
作者: dchl0301    时间: 2006-12-11 12:38
原贴由发表:
这个错误的原因如楼上所说
楼主有兴趣可以看看这个https://www.xiansky.com/posts/list/2

希望更多人能从我的错误使用中学到新的东西!大家一起学习吧!
作者: dchl0301    时间: 2006-12-11 12:40
原贴由发表:
char * file_name = "A.prt",
改为 char *file_name;
char name[


谢谢mizzle,真的很谢谢你啊,问题已经解决了。
继续学习中……




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