PLM之家PLMHome-工业软件践行者

[解决] 用UF_UI_create_filebox()时UG崩溃了

  [复制链接]

2015-5-5 08:36:17 4734 4

文星和合 发表于 2015-5-1 11:53:07 |阅读模式

文星和合 楼主

2015-5-1 11:53:07

请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!

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

x

( b$ K( o& d- h" Z/*****************************************************************************6 c& O! {" V5 n% C/ H
**' i# P: j, \2 p  |$ a
** createfilebox.cpp
8 f4 |2 K* Z0 v" A**
" Q& w$ d  x  S: q2 i  @4 A** Description:2 [3 ^6 r* {- }% u6 w; f/ d) `
**     Contains Unigraphics entry points for the application.
4 j" x$ F5 q' ^3 p**& z1 z! e  }& y+ ^' V
*****************************************************************************/
4 U) `+ L; z4 U1 v/* Include files */
- i9 W6 \' I+ O) D, i4 x  d5 e! t#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )5 f" q% @0 S0 R/ v3 r& j( h
#   include <strstream>  j0 A3 V' d  J
#   include <iostream>; p2 h, [4 V4 [: G5 h
    using std:strstream;& U/ ?% I4 c! d0 e" h) T9 U
    using std::endl;    4 ~: R! ]  k/ t6 M' p
    using std::ends;
. X% N: l7 r" s# d: P    using std::cerr;# f3 o) c7 z( o( N3 v
#else5 L4 e/ h# V* J# N, s5 J* A# C
#   include <strstream.h>
( n" Z: ^4 r% v#   include <iostream.h>2 M- a# P' P* H1 Q8 \7 W
#endif4 q7 B$ d  j7 L. C
#include <uf.h>8 j& f9 @6 p3 B/ z6 B
#include <uf_ui.h>
4 m: w/ R9 |% f6 Q* e! r( l#include <uf_exit.h>% f  u& \1 A% F; K# M# h
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))* |2 S: Z' z$ C! `  P, m
static int report_error( char *file, int line, char *call, int irc)
. l% B5 m2 J8 S% f4 `0 P: J4 |* X$ y{* i" d( L- h& q# i
    if (irc)& p( e+ E: ^! c3 P  N4 Q
    {0 G1 K9 W) v4 W, o* I
        char err[133],# _  U8 M! |4 |
             msg[133];
8 I4 K3 H, ^/ X  x! w  W/ T        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
8 Z( W5 e/ ?/ v* x3 q            irc, line, file);2 a& \* n; S. V
        UF_get_fail_message(irc, err);
" B+ ^0 l. @. N0 a5 h' U  n4 ^" W        UF_print_syslog(msg, FALSE);
" D- w6 U$ h5 J4 ?        UF_print_syslog(err, FALSE);
2 f+ U  y! d2 T        UF_print_syslog("\n", FALSE);; U9 s3 T; j. `# d
        UF_print_syslog(call, FALSE);) Z( ?% z( l& k$ s9 ]- c) m, Y) P- a
        UF_print_syslog(";\n", FALSE);; U: h8 ^0 C, a& ^5 n2 g* {( t
        if (!UF_UI_open_listing_window())1 d" R: V. A. G
        {2 n2 E' A9 V3 t9 E! O
            UF_UI_write_listing_window(msg);
9 n4 {* Q! d' ^            UF_UI_write_listing_window(err);1 [  R9 Q& Q. {! |0 b
            UF_UI_write_listing_window("\n");. w& E+ N  u2 r6 g
            UF_UI_write_listing_window(call);
0 k& K4 N" T% v4 _  W; G            UF_UI_write_listing_window(";\n");0 ^% a3 \3 G  K7 E) B" w9 j0 r
        }2 W, Z2 D. f' y; b+ B- n6 _
    }
; u) ]$ B& m) F4 i) ~+ r    return(irc);
! P* I+ Z# R2 k& h% r}
, E9 m5 e8 M" U4 f" s' H7 {7 c! h8 G4 s, {+ Q5 A- ?7 K, k1 u1 r! a
/*****************************************************************************8 {4 e. q& v! L/ }9 _
**  Activation Methods
& F+ v2 t4 _* e0 z. [5 m8 z*****************************************************************************/  q& \. c! f1 Z5 H" `$ G
/*  Explicit Activation. E0 U/ q$ T5 {# |2 Y
**      This entry point is used to activate the application explicitly, as in: M+ Q& A; ?0 _! R6 X5 \
**      "File->Execute UG/Open->User Function..." */7 T4 y7 P; D# X0 U
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
/ T+ z" R5 H! N{
2 B9 Q* Z" I. \: i0 M    /* Initialize the API environment */
$ ^, X/ ?9 p% I4 T) U5 U char prompt_string[]="open file";
& k: E9 }' |) u9 v1 F( M! X4 _  v char title_string[] = "select file";# T5 L+ }2 a' a$ [# P$ \
char filter_string[] = "*.prt";+ I' i/ m9 [! D
char default_name[] = "my file";. [9 \% y3 o8 E9 B, o' }) f
char filename[256];
0 s" P. C7 |; Z0 H; j9 @ int response;
5 F: y; ^( _0 Y) I% U) }    if( UF_CALL(UF_initialize()) ) 0 W# T0 z  ]- l/ G$ S. D8 U
    {, ]# ]4 x# z0 D8 [
        /* Failed to initialize */1 j+ [+ u' B$ I. l& f0 {9 z, Y
        return;  m0 Q, {, Y! L9 s
    }
5 w: f2 ~3 ?: |0 |  N7 z  P5 b1 A    + W/ D6 b2 L  l* W1 @- z
    /* TODO: Add your application code here */, `, E. }. `/ x
UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
$ ~  ]- M5 E; v0 M+ B$ {    /* Terminate the API environment */
- ?# N: i/ l( M( ~$ M1 w& V( v0 A+ u    UF_CALL(UF_terminate());
5 m0 p) O- @* h% k  x7 s& I}
; H" @$ B, L* H2 Q# w* N2 M! z8 ?3 C& n/*****************************************************************************
1 Y( L3 b" {; s) U& D' }**  Utilities
  p; N1 p5 o3 D0 q*****************************************************************************/
9 K5 O! V, b: J, g& w* T/* Unload Handler
  i0 y* x5 Q/ a**     This function specifies when to unload your application from Unigraphics.
- X! n/ `5 d3 O. q' y**     If your application registers a callback (from a MenuScript item or a3 u+ v- S8 K# C) |9 d
**     User Defined Object for example), this function MUST return1 M! C8 D5 z6 F$ ]9 B) A
**     "UF_UNLOAD_UG_TERMINATE". */
& q! q9 |, i# _0 N2 l7 c( Gextern int ufusr_ask_unload( void )
, ^% q/ Q$ q; D9 ^{
1 K  c4 h1 O8 R    return( UF_UNLOAD_IMMEDIATELY );- n$ D7 W( ?5 Z  B3 o8 n% z4 p6 Q
}, B( o0 U: i  ?  K6 i( I

/ R) q0 R8 B2 g
CreateFilebox.png
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

全部回复4

mildcat 发表于 2015-5-2 20:07:06

mildcat 沙发

2015-5-2 20:07:06

UF_UI_create_filebox 我没有试你这个 7 K( x' E+ u1 L- I9 B1 W  p! a9 u# Q
6 z: J/ |" s9 n; E; c, d
不过你加个uf_call或者看下syslog 啥问题
$ S  H! M7 s1 Q; M, N% n
2 q. W# A" Q: G; s
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

文星和合 发表于 2015-5-2 20:18:39

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07
& @+ U, J1 o: Z4 {* r' YUF_UI_create_filebox 我没有试你这个
) v. `; `0 q6 n% I' L4 W
2 E5 i2 G" ^& Z9 s4 e不过你加个uf_call或者看下syslog 啥问题
3 U: c8 p3 \, h& T2 z
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。4 j1 K7 Z4 g- j- U
我想用UF_UI_create_filebox()创建一个打开文件的对话框。UG有别的函数可以创建打开文件的对话框?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

简简单单 发表于 2015-5-5 08:31:59

简简单单 地板

2015-5-5 08:31:59

文星和合 发表于 2015-5-2 20:183 w5 F! |# f& S- ~  N) m) H1 w
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
4 Y4 f7 H+ B# T7 M我想用UF_UI_create_filebox ...

2 z$ c! F6 h) u: o" t' C# A. q0 T9 Y; L- x, O1 o5 T- S
#include <uf.h>8 ?' }0 K0 a2 B
#include <uf_ui.h>( F! |/ i% T' \' F: a
#include <uf_exit.h>! I+ f6 [/ e0 P& V2 O5 q, [( \+ c
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )' z! }. y* i7 u8 u
{
; }4 m# c) ]( u3 i( Z+ Q3 v8 U* u        /* Initialize the API environment */8 S2 |  ]2 C! @0 k- ^# m
        char *prompt_string="输入文件名";
0 X" m6 m4 C4 n8 S/ t2 k        char *title_string = "另存为";
$ Z# q6 |. J& P% w        char *filter_string = "E:\\+*.prt";
3 j1 D- y! L' a: e* Z        char *default_name = "OK-PRT";
) y7 C5 e7 g- c# b        char filename[256];3 q" I1 w( u2 f; z% \2 e& A
        int response;
" _9 T. S5 a7 n        UF_initialize();8 v8 x6 O6 m* O- ]
        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);
% O1 ~4 e; K) ~: U        if (response ==UF_UI_OK)
& ~5 Y4 {2 |0 {7 h3 }. [                uc1601(filename,1);( U& k8 ]& `. z$ F! A0 i! k
        else if(response ==UF_UI_CANCEL)
, j: k9 Y" U4 c' n                uc1601("取消",1);1 X- p4 d: X! P: H& ]" B
        UF_terminate();: z/ O0 b1 G9 w' f) N: T8 U0 k
}
- D8 O$ l1 b- J! ]: w+ s7 uextern int ufusr_ask_unload( void )
! G9 U1 P6 Y! F  V/ J! X{+ i, \3 ]! F# k6 {1 C
        return( UF_UNLOAD_IMMEDIATELY );
9 V- Y4 v9 L- [5 O}

评分

参与人数 1PLM币 +3 收起 理由
admin + 3 很给力!

查看全部评分

上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复 支持 反对

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了