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

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

  [复制链接]

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

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

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

x
6 @- D1 [. T8 ^( @  D
/*****************************************************************************
# e& Y) {! W: ?' s6 X**
0 y. K1 Y4 s1 L2 L; W** createfilebox.cpp
4 \$ Q+ X: P1 r5 s8 B**
$ I6 I) G2 ~/ G8 z/ f** Description:' p* w, W% P) o+ h
**     Contains Unigraphics entry points for the application.  e$ e: T0 E$ A+ Z1 H8 w  y( z3 d
**; g" L& u9 h! Z5 k+ c" a
*****************************************************************************/
: u# T' f  F0 T/ n3 T- [" b& b/* Include files */4 Z6 H! v. N! o5 Q" T
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun ), j4 P& R6 @) a6 i3 K8 g7 u+ {
#   include <strstream>! F5 w; {  z8 E1 e6 e2 `
#   include <iostream>
, z( Y4 _7 {9 s* ]0 q2 a# H    using std:strstream;3 `, L2 U; D) A- h9 b7 e
    using std::endl;   
+ [/ r! J& q% Y    using std::ends;
) U+ [( E9 ~% d2 e8 i, U- K( P    using std::cerr;+ L1 X% L; o" O2 f
#else* O& ]4 c( B6 \* C) g! J
#   include <strstream.h>
- r% w5 g! t. l& F7 C% d! R/ K2 ~#   include <iostream.h>
' B0 @1 G3 z" d8 ~6 M; p5 P3 a#endif
$ I! Z, m7 a2 N& H7 V2 K% k7 r" y#include <uf.h>& N3 N" O) j3 ?
#include <uf_ui.h>
* d7 I; k0 Q. O- K/ S4 j  \: N2 v#include <uf_exit.h>
" e7 u; A- ?; x+ ?( c% @#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
3 ^6 o6 v" n* V  hstatic int report_error( char *file, int line, char *call, int irc)
, Y7 Q) _9 q  h, P{
% {% V. d% [4 `9 ]& N    if (irc)/ t. h7 a, v; o5 M1 S$ H
    {7 n% p3 y0 V: Z6 j  B- s
        char err[133],; b9 Y% Z/ b1 E& {2 Z
             msg[133];" B/ h3 A9 p+ q1 ]- N3 H/ [9 O
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
& k6 D6 p4 ~0 \! y* t  t' V- N            irc, line, file);
# d$ w) @# x# N        UF_get_fail_message(irc, err);" B& ~1 G' g. |, a. m5 B2 }2 n
        UF_print_syslog(msg, FALSE);+ i) w6 |! Y1 ?+ P( P5 \
        UF_print_syslog(err, FALSE);
" K. a. `. ?  ?5 \2 \& J        UF_print_syslog("\n", FALSE);
4 i  e; s, g  O7 V- F+ c- f. J        UF_print_syslog(call, FALSE);! M/ e) r( z& N- r- j6 F
        UF_print_syslog(";\n", FALSE);
2 b% N1 \, B, q$ L: i. [        if (!UF_UI_open_listing_window()): _5 E0 `* O' `
        {
0 Z7 M2 q2 a( u( f/ e            UF_UI_write_listing_window(msg);) }8 S! H: R) G
            UF_UI_write_listing_window(err);
% E; I+ q9 f/ L- C% z            UF_UI_write_listing_window("\n");2 h/ B( Q; }; q7 T) L/ q1 t2 V
            UF_UI_write_listing_window(call);% D* z  F: J! n0 A# t1 @$ p
            UF_UI_write_listing_window(";\n");
: k% z+ P, \9 |5 T& V9 P        }4 s. c7 ^9 x5 R! I" b7 n
    }
% T" l) E1 Q3 C- A8 Z) j* [8 ]/ u    return(irc);
/ ^, v1 w& p6 q( i" o}
: m! D' ^% v0 a, u
' S- g1 d; Z  z6 u; V0 `) V/*****************************************************************************
1 o; F7 J+ m8 R; m**  Activation Methods0 ^- {, f8 l' c( T: e
*****************************************************************************/
9 j. E  `( Z$ P0 U4 f" _. H; e/*  Explicit Activation
9 X$ v+ \3 ?& b9 x6 o9 {**      This entry point is used to activate the application explicitly, as in" m1 @4 o" X- W& O, L
**      "File->Execute UG/Open->User Function..." */* z/ t- y9 l6 P) b* i
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
$ V+ e' n6 C; s7 K# Q# E2 q' y8 U# ]{! r1 f' o% C3 i, Y$ s, \3 G* G3 p+ j5 e. \
    /* Initialize the API environment */- \; O( c8 u+ i2 C5 c
char prompt_string[]="open file";
$ ~4 h: z4 W! K0 q( G char title_string[] = "select file";7 I' r3 S3 u  S6 _  X/ Y2 F
char filter_string[] = "*.prt";
# U; i) B* y) L: v! A4 q* w char default_name[] = "my file";0 V, \$ F* J7 S8 U/ J$ s
char filename[256];
8 S  H: P+ D! a0 A int response;
; k( t6 u1 ?/ A. C& {; S    if( UF_CALL(UF_initialize()) ) ( H% v- o% B! y* }
    {
7 |; @; E* c$ W; B6 z0 H1 m. c        /* Failed to initialize */
- M# [1 z& c+ h( ?        return;
. z4 q! j! E1 X! a* W9 Z! ?    }3 v$ V; a; s' N$ K; B
    $ J! o' e: ^+ N
    /* TODO: Add your application code here */
' h2 {; P1 q2 k# F UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox& t% J3 g  Q3 X+ ^3 `
    /* Terminate the API environment */
+ O3 g% p' t4 _$ q! d% B3 I( D    UF_CALL(UF_terminate());
: Z  b7 j" z/ x0 U. j}( I; s: E$ l, [5 \
/*****************************************************************************
0 r) z/ M1 b9 G7 a+ J**  Utilities
. j! Q  D7 I5 Y* R*****************************************************************************/' A6 {* ~4 i. Q0 c2 |2 g
/* Unload Handler% p% U, |) ~+ a1 z
**     This function specifies when to unload your application from Unigraphics.5 t' o1 Y) c% D1 P4 s" k4 R5 @
**     If your application registers a callback (from a MenuScript item or a# B- k; ~/ k- p; L' p6 f' a$ G
**     User Defined Object for example), this function MUST return
$ U. z; w! X* k$ I**     "UF_UNLOAD_UG_TERMINATE". */+ I. N( N2 K* w5 `1 R
extern int ufusr_ask_unload( void )
2 h  i$ q# _0 a{
0 d/ _8 b, P1 o: q    return( UF_UNLOAD_IMMEDIATELY );
% ]' P: W8 s+ w  P1 }7 V}! j3 }  X1 M% w2 D

9 h# @8 O3 r8 W
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 我没有试你这个 & J" Z8 t6 _* I/ F/ \: C! g

- K& p/ @; u7 Z; o: Q8 j1 M7 J不过你加个uf_call或者看下syslog 啥问题 % I; `+ p; X3 d! `  t' r

( m6 T+ ?1 o( Q( E
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07
  I2 {! {, _+ GUF_UI_create_filebox 我没有试你这个 ' Q/ l  n3 E& T) E/ `/ Q" y

( p, q& f! E& ~5 b/ V不过你加个uf_call或者看下syslog 啥问题
( o" Q  f, V& J, [* c8 B# b+ ~
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
! m, C4 D- o# W5 f我想用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:189 k3 U0 d3 \4 z- i6 A5 [! F  q
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
. u. _" X2 A" [我想用UF_UI_create_filebox ...
6 y; y: e8 p0 o! N% W

2 b" a, P; u8 V, w#include <uf.h>
" O, n/ V# ]$ Q#include <uf_ui.h>
+ W% L# k, w$ y' y#include <uf_exit.h>& ~+ O" S8 l" Z" S; i
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
5 j* R; M( V  X{! u0 C% k% I' @1 v/ r9 h- i% g* t& H
        /* Initialize the API environment */
1 e! l: p- }: ~7 `        char *prompt_string="输入文件名";
. C) w: `4 e, y        char *title_string = "另存为";
$ h9 q. x2 d; f        char *filter_string = "E:\\+*.prt";
! B7 b6 r; w; _2 u. }; S        char *default_name = "OK-PRT";
1 d, x+ r* a8 p5 Y+ ]+ w4 Y        char filename[256];7 o4 k  @3 f& z" h
        int response;
  R8 W% m  M) o9 _3 j        UF_initialize();
" v* }9 \7 U* o% R7 O6 r        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);, j8 y6 A8 V" B4 a6 F# t
        if (response ==UF_UI_OK)% a/ B4 V7 q* w; Z- y& z. J- A
                uc1601(filename,1);7 n! g" Z* n- w  x5 ]- z
        else if(response ==UF_UI_CANCEL)( N! h+ b  L: l
                uc1601("取消",1);
$ ^) z, K3 |7 F2 v0 `5 i        UF_terminate();
: {8 u$ h# q2 _0 ]}9 z6 u: O- t0 q7 Q) F: a; p
extern int ufusr_ask_unload( void )- D; Y# y: T/ ?6 R" c% A
{4 s9 g+ a  i. y+ w
        return( UF_UNLOAD_IMMEDIATELY );
/ K" y& i/ A+ U+ C& R- z. V; _3 C3 [}

评分

参与人数 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二次开发专题模块培训报名开始啦

    我知道了