查看: 4927|回复: 4

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

  [复制链接]

4

主题

4

回帖

83

积分

培训VIP会员

积分
83
发表于 2015-5-1 11:53:07 | 显示全部楼层 |阅读模式

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

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

×
. R; V* C- E' Z7 b/ M! k2 }& g
/*****************************************************************************. }. b$ Z( j  n& C( j$ E$ h/ [' o
**0 h  J$ s' u2 N" O" a3 n& K4 W5 O
** createfilebox.cpp
( K# s) b# g* x7 I) X**' E1 F8 o# p8 C8 C
** Description:
( n  T2 c; G% e' w. i2 {8 e**     Contains Unigraphics entry points for the application./ c* d: A7 r7 D
**
5 k6 x6 }- k+ Y- _*****************************************************************************/
: {* E1 s. t" G8 z8 G, L' b/* Include files */
# H' v5 N. Y) I7 W$ I$ X, O#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
$ J$ |3 q4 l$ z9 Q1 v% a#   include <strstream>7 N) o0 p9 R& V. g" O
#   include <iostream>
; _1 ^/ m/ U8 ^4 N4 S' N    using std:strstream;
, h/ E) |: ^8 y6 {    using std::endl;   
6 x# K* }; ?  u: l( N7 R    using std::ends;
: L. U5 n: V/ [    using std::cerr;  n3 V( c' B  h. ~. C6 D. w6 a& y" R
#else1 G$ G* m- D& r+ E8 b
#   include <strstream.h>% U' [  [" O4 _/ h" n# S( {# H
#   include <iostream.h>8 c( D$ |. z  _9 _0 k% D
#endif. T% D( y- r! ?' [% a
#include <uf.h>& {+ C6 a/ r% |, O% ?
#include <uf_ui.h>
9 [) B9 S! j# ]3 A; a  P#include <uf_exit.h>
, r- m2 l# k# G  M1 G#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
2 i; n  p. T, F5 n8 Pstatic int report_error( char *file, int line, char *call, int irc)5 |+ L( [; v6 B3 y5 z* B' z
{* J: d5 ^0 F! T$ m0 g$ E
    if (irc): S% [6 X9 U" s; J4 L
    {' |0 }+ F( k. A
        char err[133],
- [0 E# d5 ^. y+ F( f. g             msg[133];" ]0 z9 \/ P2 ?5 a; t
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
% h& N. K1 V3 `* v! j+ ?            irc, line, file);
9 a4 b# L) u( Y& o' m' f        UF_get_fail_message(irc, err);
0 I$ H- L/ C1 m- U        UF_print_syslog(msg, FALSE);8 s% b$ m$ e5 F& o1 j
        UF_print_syslog(err, FALSE);0 I) [) T& ^& s- b
        UF_print_syslog("\n", FALSE);
0 I% ]2 F7 c: c' _( m        UF_print_syslog(call, FALSE);
- T' T  R1 {  u! d- |        UF_print_syslog(";\n", FALSE);
& {; C! @, m1 H/ _! a+ c7 p        if (!UF_UI_open_listing_window()); g+ E' v" c# a. E9 w
        {
0 j( z: o! ^9 u# l            UF_UI_write_listing_window(msg);
6 k1 ^6 D/ L4 ]& f& o7 |3 _            UF_UI_write_listing_window(err);, u" Q: f. A1 R
            UF_UI_write_listing_window("\n");+ K+ L- @8 G; U/ g% Q
            UF_UI_write_listing_window(call);
3 _/ K( r: D. f& G" Y* x            UF_UI_write_listing_window(";\n");* E9 M, S' H* A- ?+ x5 R- j6 c! R
        }
, g! r3 c  D- N1 h    }
; Z# Y/ R8 j* o7 S+ W1 B& \0 j    return(irc);" q7 w/ Y+ Z4 D  r* [# Y
}
& C# c0 n* j. O. g8 {8 V" j5 L) X- z4 `2 \* r) L; d* K
/*****************************************************************************
. y  R. R5 D$ d( ]4 g/ O; D9 D8 i. l**  Activation Methods
- ~, j; t0 J* k+ L$ A: C*****************************************************************************/
3 \6 j" s0 h! r8 L% W/*  Explicit Activation% c* W& n6 m- F; S( s. {
**      This entry point is used to activate the application explicitly, as in
; l) j( ?( E  y8 |3 i, \5 ]! f**      "File->Execute UG/Open->User Function..." */
. B/ }, W( Y; J$ h3 Z$ r: pextern DllExport void ufusr( char *parm, int *returnCode, int rlen )
# P, G0 ^$ o& C7 V) ^6 b  |2 H& o{
  i0 L# P+ F3 b( V    /* Initialize the API environment */1 M4 y4 L) {6 N6 c8 Y' d- `
char prompt_string[]="open file";. w, c/ L! n% {. f8 N8 y" Z
char title_string[] = "select file";
9 i; i, v4 u9 d6 U  [* m% K% I char filter_string[] = "*.prt";
) G4 P4 F8 [& q; r/ p! F char default_name[] = "my file";0 b  ~$ x9 l0 ^7 k! Z0 _5 v
char filename[256];
, x: K# o, n7 P  F; |, `& Y4 N. B int response;
  p( a  z8 U" O) r' h0 ]5 c    if( UF_CALL(UF_initialize()) ) ( S3 J( W) }; p$ H) N
    {, n( B5 v) z' _$ _$ J( \
        /* Failed to initialize */
0 x1 i, K& B* i        return;9 X, d3 s: s6 Y0 a  T
    }
5 \( T# r7 j5 M8 P    9 b% n9 D: i9 D# r; B& j: r* Q: `
    /* TODO: Add your application code here */
2 n6 Q9 `" T6 I. I' Y UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
* F# I8 c: |$ {$ Y4 J    /* Terminate the API environment *// i3 U$ M/ s7 n. h. @
    UF_CALL(UF_terminate());# l# T; T' j1 {9 c2 ^  y
}
8 W% x( ^! R" R  U/ L- a* y1 v/*****************************************************************************+ h4 o$ @4 y# Q, Q6 ^, R. T
**  Utilities
: U8 i/ n; j& ?0 d1 k- v! f*****************************************************************************/8 M! a  ]' z4 \+ u* w
/* Unload Handler
8 }/ Y4 q& ?% u: r- N**     This function specifies when to unload your application from Unigraphics./ s/ O2 E3 _* n8 w' ]7 [( n' w
**     If your application registers a callback (from a MenuScript item or a' L2 C. x+ `9 g/ j$ D+ z
**     User Defined Object for example), this function MUST return5 ^9 s' ?, e. G6 ]
**     "UF_UNLOAD_UG_TERMINATE". */
2 g4 X* l0 |# G! V+ F/ rextern int ufusr_ask_unload( void )
& X3 V; S. e+ n! i7 I{
( E" J- z0 S% Z8 k1 z$ w# G( W    return( UF_UNLOAD_IMMEDIATELY );' i9 o* z+ v3 v4 M
}4 K" Z5 B, ^* Q2 r6 [

( D/ [( [* w) J$ K: E( l
CreateFilebox.png
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

320

主题

226

回帖

9784

积分

管理员

PLM之家NX|TC专家

积分
9784
发表于 2015-5-2 20:07:06 | 显示全部楼层
UF_UI_create_filebox 我没有试你这个
  D3 J9 J& _, E) j1 z& r( h- J( _, b% e" s$ U( P
不过你加个uf_call或者看下syslog 啥问题 , _+ `$ J  {. I" ^  K5 k; ]# K
2 i! @+ L; ^( s) J& d# H2 n
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

4

主题

4

回帖

83

积分

培训VIP会员

积分
83
 楼主| 发表于 2015-5-2 20:18:39 | 显示全部楼层
mildcat 发表于 2015-5-2 20:070 J8 U# Y( }6 P* G. ~
UF_UI_create_filebox 我没有试你这个
& O! U4 W5 _3 n
+ Y, z8 C  e# D* q+ R不过你加个uf_call或者看下syslog 啥问题

4 l7 f! U# T! N) O, AUF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
6 a6 F: k5 {( G4 u+ n我想用UF_UI_create_filebox()创建一个打开文件的对话框。UG有别的函数可以创建打开文件的对话框?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

8

主题

58

回帖

896

积分

培训VIP会员

积分
896
发表于 2015-5-5 08:31:59 | 显示全部楼层
文星和合 发表于 2015-5-2 20:18
8 Z/ p  J; o0 m# q, N8 p; r$ U, uUF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
4 e& G0 a* O+ o. V7 z$ B我想用UF_UI_create_filebox ...

3 u2 l# w9 _5 T% b( D. i  n! ?% {
) e  P3 z& q7 M$ Y# i#include <uf.h>0 Z9 O+ v) J( c: d$ A) K" U/ G; Z! f
#include <uf_ui.h>. \4 v( V! n3 x; X6 {* J) |; ]
#include <uf_exit.h>
. ~1 ]# h8 _- N$ a9 I: gextern DllExport void ufusr( char *parm, int *returnCode, int rlen )
9 s2 H4 M( k6 X) C+ `- J{
: n( G) X9 e) e- K4 G        /* Initialize the API environment */. n6 v. G$ l" S. ~& A4 {' V, c
        char *prompt_string="输入文件名";
4 G# H' b& N" l+ }3 j, G* Y+ {% R        char *title_string = "另存为";
) @# H- X0 E; T4 b6 r6 [+ ]0 {        char *filter_string = "E:\\+*.prt";- b' e3 ~6 `' d3 d8 B* C  Q
        char *default_name = "OK-PRT";, M! B% ~" f, d% i3 w) M$ }( d
        char filename[256];: e# A% Z- L1 R' `+ V% x
        int response;
' {+ Y! h8 G5 f* j        UF_initialize();
5 R: `1 q; C" }4 _7 V        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);  e( M( M1 w4 F( H
        if (response ==UF_UI_OK)* ?1 V# z$ n# I* A  ]
                uc1601(filename,1);
. F+ I9 t4 h) {4 L6 ^2 y! w4 M, ^        else if(response ==UF_UI_CANCEL)# Y7 V! R$ y' z1 B# Z* n! X* q
                uc1601("取消",1);
% `5 N; W2 Q# m- g' Q+ l        UF_terminate();
6 T- y2 T$ e7 O# j( L1 ]: a/ R}
# Q; f; Q% P, t% y1 Rextern int ufusr_ask_unload( void )% F- P7 ^: E0 X" v. E
{5 L. N& P' r+ U4 B: a; U( A
        return( UF_UNLOAD_IMMEDIATELY );5 N2 H& j1 J* }* o' C7 K% X
}

评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部