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

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

  [复制链接]

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

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

文星和合 楼主

2015-5-1 11:53:07

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

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

x
5 W+ P6 `" v' {9 W8 n4 j
/*****************************************************************************
. l- Y6 _8 V7 ^" N9 f7 M5 E**4 C6 O: g# f/ j4 s6 ?
** createfilebox.cpp
2 t1 k1 P& |* t# I! {$ M, I, _**/ _) t( b1 @+ k% p. }: c: d
** Description:0 @5 j+ i9 y" \1 r" y6 v+ u
**     Contains Unigraphics entry points for the application.9 z5 z3 |: p- o" k
**
: @' N* _4 B5 \+ `7 U*****************************************************************************/
! F0 k3 z- ]- M$ N  n9 T7 b/* Include files */
8 b: n. w/ v4 {" m% w$ n#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
8 p1 B  }8 Q- O! A9 |+ R; ^' I3 r0 G#   include <strstream>1 Z+ Q" C% o: o/ N0 D- ?# _9 y  J
#   include <iostream>
/ z( k: T1 Q7 ~; ]4 a# `    using std:strstream;
2 n4 F/ d, d% G! V    using std::endl;   
/ q1 U" g, ]; z- v. i$ g2 x    using std::ends;
0 S/ n5 P3 I/ U    using std::cerr;
  g; ~. G2 F9 G#else
( s4 {* j4 d& v; H#   include <strstream.h>
. W3 C$ ^7 @+ S#   include <iostream.h>9 Z7 Z+ S7 K, E! |: Y8 f/ [" d  T; S
#endif
6 G& x" z& g0 L6 N5 Q; E8 x9 p4 S6 W8 m#include <uf.h>
& X; S5 b  a! X' C+ @4 m#include <uf_ui.h>
: I7 _. _# }; K#include <uf_exit.h>5 G8 Y  o$ [6 t
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
( D7 G  G0 @# {; u7 g* Fstatic int report_error( char *file, int line, char *call, int irc)) v( f/ \: G0 }( b* i
{$ r) d' }0 H1 ]8 |  v
    if (irc)
, a+ r: w0 W$ v& `( e    {. F0 g! H. G7 V2 n
        char err[133],7 k& M. A/ E5 W: Y  }$ K" D
             msg[133];
( Y, u8 @( Z8 S  S1 @        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
) c2 N- k. s  e: q            irc, line, file);
' S" Y# a6 A  u( W* G  Q/ U$ G! q3 e) {        UF_get_fail_message(irc, err);
' k3 |0 J% ~' n* V" a        UF_print_syslog(msg, FALSE);
- G4 y4 M! U; ~* ^$ E        UF_print_syslog(err, FALSE);
% j3 J: s; f5 C& p% }        UF_print_syslog("\n", FALSE);
7 _( e2 Z, P' ~+ P        UF_print_syslog(call, FALSE);
4 h9 @; t/ r) G  F        UF_print_syslog(";\n", FALSE);) _6 [6 F  M4 A
        if (!UF_UI_open_listing_window())
2 u2 ~% k; W9 g* ^5 F- f        {8 e8 K+ ^( C6 _" W8 z8 F
            UF_UI_write_listing_window(msg);, ^; }' C+ V& j* @& N6 r! u
            UF_UI_write_listing_window(err);- F4 F: `" c- d
            UF_UI_write_listing_window("\n");# @* c# j7 u' A" a! V, o
            UF_UI_write_listing_window(call);
0 M/ Z5 F- ?, t& h! V; ^            UF_UI_write_listing_window(";\n");
4 R- J/ P5 @: ^! @1 v, j        }
. `' X, }  O- q    }
$ [; I. B6 Q4 k+ a  _9 `! F1 f/ C    return(irc);
& v0 K1 [3 a( w4 o% _' Z! v+ {}
( z( D. N# I, J1 o4 C( q/ t
/ m/ C, p1 K. K" \4 X8 {% d/*****************************************************************************
( ^6 n. ^" u  U8 r9 p8 k**  Activation Methods
; I3 C/ g" S2 G*****************************************************************************/% L: G5 K& P( R' k! ]1 ]
/*  Explicit Activation
# F8 j7 n1 E2 N: g**      This entry point is used to activate the application explicitly, as in8 r) q0 T6 t! X
**      "File->Execute UG/Open->User Function..." */* [; ^. \2 O8 W$ c
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
2 M* u8 p' O2 v; M3 @8 h6 H: w" Y+ z{3 E9 ?" o7 Q+ Q8 M
    /* Initialize the API environment */$ F0 w, o3 T- I2 v+ D8 G
char prompt_string[]="open file";
4 s2 T: k* P, W! _9 O6 } char title_string[] = "select file";
, L+ l/ y4 ^  |; D char filter_string[] = "*.prt";
; {6 j  x0 ]# @* d' y char default_name[] = "my file";, T- X* E6 G% v. l. p! w2 E
char filename[256];
8 u* l  S2 e- w! {) S; e, n- x1 Q  \2 @: N& k int response;
) ~3 |$ n% A2 g" f" ~$ V    if( UF_CALL(UF_initialize()) ) * a5 i! I/ z4 ]6 f, @6 ~
    {
* j# b4 ?9 ^- ?5 J/ `        /* Failed to initialize */
* y6 r- [4 Q7 z: n( y7 ^- U        return;: ]- m; h8 v8 g
    }
* A  b) z. A+ g; M' m   
) Y3 F1 U* W. w4 y. D; M6 P    /* TODO: Add your application code here */
. M1 L1 X9 j* T6 x; @ UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
0 V  W1 F" ~/ y, x% O    /* Terminate the API environment */0 n* |$ O4 I  B# ]: M, O) z- u
    UF_CALL(UF_terminate());
" p! O+ p( o2 o+ u& ?}: k1 Q! J  [  z* |+ e7 D# v
/*****************************************************************************
1 d$ t9 t# x: Z- I4 ~**  Utilities
1 I, L2 x! N1 A! B*****************************************************************************/) p0 d6 u) S) }1 z  j! D
/* Unload Handler7 @. d2 A% [5 v: }6 l
**     This function specifies when to unload your application from Unigraphics.
" y" v2 k+ O# n+ m**     If your application registers a callback (from a MenuScript item or a8 Z7 v9 \" }' F" Q" n6 q: F* {
**     User Defined Object for example), this function MUST return
& \' s* [- ^; E3 w" I- n**     "UF_UNLOAD_UG_TERMINATE". */7 m# d0 s) @( T
extern int ufusr_ask_unload( void )5 I2 H# ?5 M. @% `
{. e: t" f- R  L6 N/ C
    return( UF_UNLOAD_IMMEDIATELY );, y% S1 Q( j0 Q1 M; @5 P
}
6 g' B% O9 m4 `  B' V% @6 i" w- j) [+ Y" [/ D
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 我没有试你这个 & C# ^. w6 l1 R/ N5 N, c, D7 V

* s) b1 A  ?  Q8 T5 R不过你加个uf_call或者看下syslog 啥问题
1 c9 C  f: o/ ^$ y# E9 V( K, m0 P
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07% M; {  B! h- V+ Q6 l0 X6 j
UF_UI_create_filebox 我没有试你这个 0 h8 E& ~( |3 G) d3 ]

% u  E. a/ V9 L8 _- u2 i; J$ t  H不过你加个uf_call或者看下syslog 啥问题
5 j! @7 R% `* U1 y
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。: q2 L/ R' }, {) ^! f  `1 g
我想用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:18
! Z; M2 h: A, f4 o4 @1 J) t& RUF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
1 m8 x% S) d6 o6 ~我想用UF_UI_create_filebox ...

* `# c7 ~* Z& m1 O) v4 m
% o2 M3 U" U5 O- G( K1 y2 P& \#include <uf.h>
, ~4 [' h7 u9 t4 W#include <uf_ui.h>' H# F1 |$ x( q
#include <uf_exit.h>+ i# B. o) o6 X- ^5 ^( r
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )9 x+ K  a2 C1 |! W# F- F
{
8 x$ ]# n8 V& T7 Q5 `        /* Initialize the API environment */* W' C9 I% J, I! T* N' h& I: s
        char *prompt_string="输入文件名";
$ j7 i/ k! D. v- P  P# q5 o5 `        char *title_string = "另存为";
: D* r  D  K8 V  {+ k        char *filter_string = "E:\\+*.prt";
) x+ j' @- Q+ i% g  h; z  }: K3 w) r        char *default_name = "OK-PRT";
3 [4 u) O$ Z$ g  H        char filename[256];
+ D, E; u3 [( [) \        int response;
% d. }* Z- D( b- r6 h9 d% s, N        UF_initialize();
$ r; m6 S' _% w) D, v0 l% `        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);$ B& V6 n- ?  Q( D5 d
        if (response ==UF_UI_OK)$ h2 O9 L. p/ z6 o9 l
                uc1601(filename,1);: O% o4 ^7 W8 \' i" @# z5 Z% R
        else if(response ==UF_UI_CANCEL)( e, ~6 P8 v4 _% [+ r  w
                uc1601("取消",1);
! h3 {* Z3 l" \3 O  a        UF_terminate();
9 `* O/ |3 e: S9 p/ f" V}
- I) o, u! Y2 q, F+ ]" y: hextern int ufusr_ask_unload( void )
, m9 G7 @; r, [9 p# t{
0 s9 M# ^3 q2 p) b  Y. A  g5 @        return( UF_UNLOAD_IMMEDIATELY );4 K2 n9 x, t: f
}

评分

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

    我知道了