PLM之家PLMHome-国产软件践行者

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

  [复制链接]

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

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

文星和合 楼主

2015-5-1 11:53:07

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

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

x
6 `3 w3 f- }( Q# ]" \4 T
/*****************************************************************************
$ ~) x( m, Z  j5 X* E$ `7 X1 R**
. t7 c8 S8 ]3 j- A  i6 I** createfilebox.cpp% F: N4 t/ x1 {, |" z' |
**
0 p& o0 c2 E, @) f, H  v. m** Description:
- m/ C' P5 u4 W. }) M**     Contains Unigraphics entry points for the application.; R1 p4 h4 r% s. e7 ?
**
: [+ b' T+ q. t$ L*****************************************************************************// h. X8 U" s6 w) I! u
/* Include files */
* G' s% M) `8 r6 _3 |#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
# b( y4 p+ o5 g/ W- C: n& W#   include <strstream>
/ H) e; d2 N9 e6 u; G#   include <iostream>
7 |  z% p9 C. A0 H0 J* a. h7 w5 b    using std:strstream;+ }3 e' N! ?( b& z  a6 m) c
    using std::endl;      O& `4 H& U+ I3 t
    using std::ends;
* L+ t# {. Q6 G* [; ?    using std::cerr;
$ G4 a0 v1 O" f#else! x% f+ p  H- ^' }4 z5 H' n
#   include <strstream.h>
6 Z5 V4 ?8 m: t4 k) Z1 Y8 I% x/ ^#   include <iostream.h>! G# T3 J7 d# E; ]
#endif
4 A; W; [8 W. L, `% t#include <uf.h>
. _) S: k+ n, L2 A# s% S#include <uf_ui.h>+ a% c% K8 l+ u8 F$ ^1 l9 W0 x
#include <uf_exit.h>4 b7 a+ K- r& r! D# |" M' f
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))0 a) J. |, P  X
static int report_error( char *file, int line, char *call, int irc). Q0 G3 b) C7 P% F" Q8 o
{4 m  v9 _' V; c" E( s
    if (irc)
3 e6 }0 }3 G; S8 `    {7 @9 R+ k& x4 G! V" L
        char err[133],+ p2 r) O" D, C7 |* O6 ~
             msg[133];
$ m. k0 i$ g8 w7 b# ^8 o: S2 D        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",- q$ O1 l4 W7 D% e9 V4 `- l+ V+ F
            irc, line, file);' v7 h) V9 \5 P0 }8 j
        UF_get_fail_message(irc, err);, j) d& T+ j7 P
        UF_print_syslog(msg, FALSE);" |; O* u9 E$ c; G0 [
        UF_print_syslog(err, FALSE);+ m3 j4 Y+ e6 [
        UF_print_syslog("\n", FALSE);
/ K5 V) U  E; k% a6 `. `        UF_print_syslog(call, FALSE);
! s2 T& B0 p& s% `' b  @2 b        UF_print_syslog(";\n", FALSE);1 k; ?8 Y$ a' U+ ^9 }5 |
        if (!UF_UI_open_listing_window())% W8 i: c2 O9 i) d$ P' x* n
        {
  Y1 W$ ]7 Q7 t( ?* ], F            UF_UI_write_listing_window(msg);
/ }6 u0 F+ D; o8 C, ]& D- d            UF_UI_write_listing_window(err);6 S3 d/ [( u! M( J$ @; }* f
            UF_UI_write_listing_window("\n");) Q( {4 w/ |9 W- c2 Z0 M  r' g. Q
            UF_UI_write_listing_window(call);+ y& I7 h  p. }* a, S) b. h+ P
            UF_UI_write_listing_window(";\n");
# J/ O' h( j. _" {3 f        }
3 x/ B# ~. y# a$ z: h    }7 A9 w3 W9 ]7 ]% C/ ~8 E
    return(irc);
# h; A, a$ x! ]" @: B$ i8 X& z7 f7 X$ E}% s0 U! u2 [. E5 M: ~

# q# Z8 a" U* E# U/ a" u5 ^! Q, B/*****************************************************************************- }$ {/ D% t& a, t) K
**  Activation Methods
% g" ]- K+ ]. x! A: u5 O& G) l*****************************************************************************/: U3 E* m2 K' e' o, q3 j+ L
/*  Explicit Activation
+ e, O8 v# N1 r1 M7 b3 z( w**      This entry point is used to activate the application explicitly, as in, l( K9 P- I1 @) m* C) i5 m9 p! r
**      "File->Execute UG/Open->User Function..." */* L" n' Z$ ^' J6 b4 G- `
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )# n& R/ z0 O5 S; Z( \  e4 L
{3 @9 H" P- t- t6 B" x
    /* Initialize the API environment */
1 y9 F# `7 O7 J; j char prompt_string[]="open file";- I% A; B2 G8 p4 J1 }1 t2 a8 F
char title_string[] = "select file";) l5 i7 [  X" q( M- k5 t! {7 g0 }: B3 z
char filter_string[] = "*.prt";" \# ?5 g2 f4 ?6 J6 ^4 j; R4 Y9 }
char default_name[] = "my file";
4 |6 g2 L( _4 J$ F+ ]& N2 m; F char filename[256];
3 g: u6 ~+ b: |( ?$ ^5 \! O+ L int response;1 u9 L$ p$ q* o+ d$ L
    if( UF_CALL(UF_initialize()) ) " `. y! a7 m- W8 e; X. Q# f
    {
. r% ?! O  U/ ]' P: L' e; c        /* Failed to initialize */7 K! Z9 B+ V$ d9 Y+ D' K4 \4 V8 S% ?  }
        return;9 ~7 K0 A& ^0 T7 c2 I8 T
    }
4 b# F) X8 O' z  |0 h- Q    8 d2 M7 i0 T& U
    /* TODO: Add your application code here */8 C4 Z6 `7 M/ b1 K! ~
UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
  W7 ]2 m/ m+ i: V2 j    /* Terminate the API environment */' [- {: c/ d, o1 \
    UF_CALL(UF_terminate());
- @9 R- D! w0 C2 Y3 D}- s/ C1 j# s8 K2 r" c5 ^0 H. [' X
/*****************************************************************************
4 w& U. r8 L1 J' ~: n, T2 J**  Utilities
  K6 S3 u# _) m: Q3 I( Z/ }1 U*****************************************************************************/
! x: f: s$ P, s/* Unload Handler3 `' H1 ?$ u3 {4 W+ C1 h
**     This function specifies when to unload your application from Unigraphics.
8 s5 b) y% a: v/ _1 _**     If your application registers a callback (from a MenuScript item or a
( {9 k( }3 l- S; ?* y**     User Defined Object for example), this function MUST return
* T! t+ g2 s$ ~; \# T**     "UF_UNLOAD_UG_TERMINATE". */
8 |) S9 U* C; t  t* pextern int ufusr_ask_unload( void )
( A. i! [0 M1 d1 J, J/ V5 s, l{6 H: A# O, h, X5 d
    return( UF_UNLOAD_IMMEDIATELY );* z' c1 a' L/ x$ U/ u6 k: Z
}; W3 d& i0 Y; L* {
1 d  v. T8 i! P! [; n0 b( ~
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! o5 W9 y5 `) L% G6 l/ J. E

( _* @+ e  Q1 U& C  [% I0 O不过你加个uf_call或者看下syslog 啥问题 3 T' i! ~; S$ }6 \& I

0 `( \* }, v% w7 g4 |
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07! J4 w) `7 ~; Z7 s$ y
UF_UI_create_filebox 我没有试你这个 9 d: J/ \& v" f
' B" i- r. N1 F3 R/ h
不过你加个uf_call或者看下syslog 啥问题
8 f8 C5 y( V$ z0 q- x) W8 [5 o8 u- x& h% `
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。" l1 Q2 d6 U# W/ t* H/ O$ S
我想用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% n# F: B. i2 b4 ?( l7 t
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。% K2 x6 o8 d, V+ A! I1 }. P
我想用UF_UI_create_filebox ...
  {8 L9 E6 w! I% _! x, o

8 p* j$ S( s3 v" u#include <uf.h>
6 r3 P  @3 U, `#include <uf_ui.h>
$ [9 {  n$ E) ?' @* M#include <uf_exit.h>
/ p/ ~% w6 Y- ]+ G! K- q' R' Mextern DllExport void ufusr( char *parm, int *returnCode, int rlen )
$ E0 p! }( I9 X{
# \1 @( a* G5 l        /* Initialize the API environment */5 x) Q% d5 t0 {6 _3 r! }" d7 @
        char *prompt_string="输入文件名";
/ l7 a% W9 R, E$ F- ~/ @$ x        char *title_string = "另存为";4 C  b5 _2 N3 I" Q! _3 t
        char *filter_string = "E:\\+*.prt";
# F5 c3 n+ C0 o  R3 i2 t8 i        char *default_name = "OK-PRT";
8 N& ~4 b$ b# s# ^2 F. ^0 {        char filename[256];  `+ H. H) K( g+ f1 E
        int response;% t" `/ O% j( N7 v5 v3 V, J) X
        UF_initialize();
# U) J7 L' ^" {        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);+ _9 h2 [3 N# O% T3 a
        if (response ==UF_UI_OK)
; p6 Q; i- M& b                uc1601(filename,1);* {1 Y4 L+ x- ?! p1 A
        else if(response ==UF_UI_CANCEL): _0 z; T0 T' j/ b/ K. B
                uc1601("取消",1);; g. {$ ^: b. ]
        UF_terminate();
2 t& b. n7 t' b& @3 T  [}
6 s5 `" c3 U$ _. |- W3 Y- Nextern int ufusr_ask_unload( void )7 ?' S5 T* Q, D3 x9 s3 q) K
{3 J9 @' h4 q' P7 F
        return( UF_UNLOAD_IMMEDIATELY );& s2 q4 p$ v7 W3 I, k7 Q% p4 J( l$ v
}

评分

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

    我知道了