iCAx开思网

标题: 斑竹们请帮忙看看(急!),有关API调用GRIP(编译通过,但是调用GRIP程序不成功) [打印本页]

作者: yangdx    时间: 2006-3-11 17:55
标题: 斑竹们请帮忙看看(急!),有关API调用GRIP(编译通过,但是调用GRIP程序不成功)
int GLOBODIAL_CAM_ok_cb ( int dialog_id,
             void * client_data,
             UF_STYLER_item_value_type_p_t callback_data)
{
     /* Make sure User Function is available. */  
     if ( UF_initialize() != 0)
          return ( UF_UI_CB_CONTINUE_DIALOG );

     /* ---- Enter your callback code here ----- */
     char *grip_exe="E:\HU\Grip\hu3.grx";
         int   status;
         int   grip_arg_count=6;
         UF_args_t  grip_arg_list[6];

         //获得对话框输入参数数值
     double c,lf,d,b,bt,i;
         UF_STYLER_item_value_type_t data;

         data.item_attr=UF_STYLER_VALUE;
         data.item_id=GLOBODIAL_CAM_REAL_C;
         UF_STYLER_ask_value(dialog_id,&data);
         c=data.value.real;

         data.item_id=GLOBODIAL_CAM_REAL_LF;
         UF_STYLER_ask_value(dialog_id,&data);
         lf=data.value.real;

         data.item_id=GLOBODIAL_CAM_REAL_D;
         UF_STYLER_ask_value(dialog_id,&data);
         d=data.value.real;

         data.item_id=GLOBODIAL_CAM_REAL_B;
         UF_STYLER_ask_value(dialog_id,&data);
         b=data.value.real;

         data.item_id=GLOBODIAL_CAM_REAL_I;
         UF_STYLER_ask_value(dialog_id,&data);
         i=data.value.real;

         data.item_id=GLOBODIAL_CAM_REAL_BT;
         UF_STYLER_ask_value(dialog_id,&data);
         bt=data.value.real;

         //定义传递参数
         grip_arg_list[0].type =UF_TYPE_DOUBLE;
         grip_arg_list[0].length=0;
         grip_arg_list[0].address=&c;

         grip_arg_list[1].type =UF_TYPE_DOUBLE;
         grip_arg_list[1].length=0;
         grip_arg_list[1].address=&lf;

         grip_arg_list[2].type =UF_TYPE_DOUBLE;
         grip_arg_list[2].length=0;
         grip_arg_list[2].address=&d;

         grip_arg_list[3].type =UF_TYPE_DOUBLE;
         grip_arg_list[3].length=0;
         grip_arg_list[3].address=&b;

         grip_arg_list[4].type =UF_TYPE_DOUBLE;
         grip_arg_list[4].length=0;
         grip_arg_list[4].address=&bt;

         grip_arg_list[5].type =UF_TYPE_DOUBLE;
         grip_arg_list[5].length=0;
         grip_arg_list[5].address=&i;

         //调用GRIP程序
         status=UF_call_grip(grip_exe,grip_arg_count,grip_arg_list);
         if(status!=0)
                 uc1601("调用GRIP程序不成功",1);
     UF_terminate ();

    /* Callback acknowledged, terminate dialog             */
    /* It is STRONGLY recommended that you exit your       */
    /* callback with UF_UI_CB_EXIT_DIALOG in a ok callback.*/
    /* return ( UF_UI_CB_EXIT_DIALOG );                    */
    return (UF_UI_CB_EXIT_DIALOG);                           

}


这是我的代码,本来希望按OK就调用GRIP程序,但是显示调用不成功。

编译通过,不知道原因在哪?
作者: yangdx    时间: 2006-3-11 19:02
走过的路过的帮我看看,调了好久都不行,实在着急啊!!
作者: yangdx    时间: 2006-3-14 12:31
还是没解决呀,斑竹们请帮我看看。
调试的时候C、lf等变量的值都是对的,把他们的地址赋给grip-arg-list好象也没错,但是运行到UF_call_grip()函数的时候,显示错误,然后c\lf等值都变成“symbol "c" not found”,不知什么原因。
作者: yangdx    时间: 2006-3-14 12:33
调试图片
作者: yangdx    时间: 2006-3-14 12:35
调试图片2
作者: yangdx    时间: 2006-3-14 12:40
调试图片3
作者: yangdx    时间: 2006-3-14 15:01
已经解决!!




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