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

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

  [复制链接]

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

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

文星和合 楼主

2015-5-1 11:53:07

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

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

x
' s) s" T, r+ B# C/ b+ Q
/*****************************************************************************% a: T& ^& D4 V% Z! Y8 O$ b' u
**
. z# e! X" @2 K3 A0 c* \4 l% J** createfilebox.cpp/ D5 ^, v3 L9 M/ n+ g
**
. i0 ^9 A4 E- Z1 S& B9 Q** Description:
4 U( G! |# K6 n3 ]6 k**     Contains Unigraphics entry points for the application.6 Q( x% y2 ]  T/ W& M/ l" {
**
4 \) X' Y1 Z8 ^( [*****************************************************************************/
5 C2 O% t' S  @- L/* Include files */
8 F( o9 u/ E6 F# C* Z, K#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )7 v9 B4 q+ e. W5 R
#   include <strstream># t9 G- L6 v( Q, S5 L/ I5 E% F$ R
#   include <iostream>
% ~) w8 t( `' s, y+ n# i' ~    using std:strstream;
% [3 [7 t, l/ e% h' b% e0 V    using std::endl;   
$ q" O- A, u  d; t( r6 f2 {    using std::ends;9 K# ^' ?# V4 `$ U
    using std::cerr;  K8 q/ x" p/ e) s1 N
#else
. W- m% Y6 L/ B# u9 m4 g5 D! y8 g#   include <strstream.h>5 i9 u, X4 f9 p& G
#   include <iostream.h>7 P0 ~+ G, Q' q  t
#endif
" ^; ]1 l0 D% U#include <uf.h>+ V' G' A; q& h# Q' l1 g
#include <uf_ui.h>6 E. C* W( _: C
#include <uf_exit.h>
9 P+ ?# Y4 P8 S$ a( G#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
9 ?8 c; n2 _! o. I$ a4 t7 W8 [5 K7 [static int report_error( char *file, int line, char *call, int irc)
" r# l6 c- a4 [* X{3 G5 Q1 B7 l' ^; i' V
    if (irc)
4 S4 m) p1 F: R' @, W    {
8 _$ \) E4 T% O, x! a  V) P        char err[133],
( Z. C3 F9 X" ^" m8 @# Z2 q             msg[133];
$ z, q' @" |6 [4 [        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
8 |  b! w% R  Z- m1 A$ y8 h) a: Z            irc, line, file);' _- W: W; T+ z2 @2 d% I
        UF_get_fail_message(irc, err);
) w8 s; a" v: Z& A. t- B        UF_print_syslog(msg, FALSE);) b1 b5 T& a, y2 ?
        UF_print_syslog(err, FALSE);& R- n9 c" I( D. N* S  p! A, z
        UF_print_syslog("\n", FALSE);  v8 y" m! V, M' J$ x. i
        UF_print_syslog(call, FALSE);& x) Z" i5 `7 X) T1 L1 W0 U" T+ n5 E
        UF_print_syslog(";\n", FALSE);/ o. Q, V$ ^* G; ?. u
        if (!UF_UI_open_listing_window())6 C* a" l$ P9 o
        {
+ n5 V2 Q+ L9 ?" M0 T: E            UF_UI_write_listing_window(msg);& o; |0 m4 w5 ~- T( X* D( H# }
            UF_UI_write_listing_window(err);
9 v( a7 `9 W+ E            UF_UI_write_listing_window("\n");
/ ]  S6 n+ B: t" V            UF_UI_write_listing_window(call);
' w! w% t$ d3 x  e" S0 h3 F  Y            UF_UI_write_listing_window(";\n");& G) I0 {, G& T
        }4 `0 e. X) F, \
    }  u3 C  h/ a- |; i, n  Q! z
    return(irc);
$ N) w1 v8 b% r. Z}
4 r1 G7 z1 ^: S" |4 l: A& V% _) p" R6 Z, ~2 K
/*****************************************************************************
$ k1 T- g* S5 U" p# s: O% F**  Activation Methods$ z3 x2 b  f0 M
*****************************************************************************/
/ n1 b/ z7 R- Q: k: }, y2 _+ \/*  Explicit Activation
9 x8 c0 [. s6 ], a8 x% {5 u" s3 N**      This entry point is used to activate the application explicitly, as in
0 d5 j, e# r& t2 g; K**      "File->Execute UG/Open->User Function..." */
# l; u8 Q/ U) h+ |extern DllExport void ufusr( char *parm, int *returnCode, int rlen )& p4 H# o$ ^0 t1 Z- r6 c( c
{9 x# m2 A% h' l
    /* Initialize the API environment */4 q2 q* V+ b4 [4 r
char prompt_string[]="open file";- T& F; p3 j+ C0 Y2 ]
char title_string[] = "select file";
% r: G: {8 Y* s- z, a4 \- o& R char filter_string[] = "*.prt";# L0 @4 d% N. _4 L: _3 I. B* X8 F
char default_name[] = "my file";# y7 i1 e! ~& \9 L8 W$ A2 p5 m
char filename[256];
6 w7 r! V. @5 w# F: y, q% r3 ^7 M0 K int response;
# H: D% W. V2 E) k9 a; w7 s& z    if( UF_CALL(UF_initialize()) )
* q8 g# @3 [4 q6 u* l    {/ ]. M& a3 |! Y- `
        /* Failed to initialize */
4 i. P+ a7 b0 \1 t# c, e+ _7 Z$ Z        return;! V4 e. U3 ?, e; x- u
    }
6 {/ U2 C% [, ?! Y' k+ }    0 d- K. G" W! D- u0 C$ f: i* t" e
    /* TODO: Add your application code here */
* `& j. G/ e" _4 {1 a5 T( h) G UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
7 a- ]4 L2 I+ S    /* Terminate the API environment */
% i( y: I6 ?8 b0 f    UF_CALL(UF_terminate());
6 z7 K1 y9 [( Q8 ?& J' j' _, E}
  G8 g9 e# Z  w; @- r" j/*****************************************************************************
# n" ]. G9 S# Y) N( k2 ~) V4 ~**  Utilities, r) J- y$ S% v
*****************************************************************************/
) s* p7 z& x# f4 r9 G+ v/* Unload Handler6 U7 H9 R. Y: J
**     This function specifies when to unload your application from Unigraphics.
# Q2 i! q+ N( ?( b9 ^+ G. k) k**     If your application registers a callback (from a MenuScript item or a$ |7 D" Q/ r* l- |5 }
**     User Defined Object for example), this function MUST return
9 Y( K  x% T$ l* l- y& d**     "UF_UNLOAD_UG_TERMINATE". */# Q. D9 a* a' b/ a
extern int ufusr_ask_unload( void )
. p) [. M2 v$ v7 h( T# f{
( o9 ~8 u2 [% j4 g    return( UF_UNLOAD_IMMEDIATELY );
' B8 `, ^  L3 n& O/ G- {}, d+ O3 m, H: @! p9 A3 `4 b% ~
& u+ `" o5 `$ a$ ]
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 我没有试你这个 ) [4 z7 ]! v7 i
1 p. D0 B  e5 R
不过你加个uf_call或者看下syslog 啥问题 + L7 J7 [$ @8 L. _) s5 f! [3 C
( D* Y0 z; a& f9 P2 U
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07
- o( q4 {$ O( p$ j" t% ?UF_UI_create_filebox 我没有试你这个
5 J* S" v; c( m% d3 b! u: k9 I$ Q
3 D; X' f/ y4 m% _9 Z5 _2 _不过你加个uf_call或者看下syslog 啥问题
+ _7 V& Y# Q& N5 s5 X" |# ~
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。  H1 \/ \) s8 i' T! C3 W
我想用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
) Y0 G8 e% H. rUF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
5 r) H* \5 ^3 Q, ^6 x! H0 p8 u& O我想用UF_UI_create_filebox ...

6 k5 Q6 |: b# N. x5 s/ Y0 H
4 @, B1 F  @3 p0 S" g5 j4 r#include <uf.h>
1 G8 k( i' Y: h. e" {#include <uf_ui.h>" M: _) p  A3 F0 F
#include <uf_exit.h>2 o+ A3 J9 }1 _  x3 I! x1 t
extern DllExport void ufusr( char *parm, int *returnCode, int rlen ), T8 r9 X5 T. s0 @
{# K- r3 j5 W1 N7 T! O
        /* Initialize the API environment */
0 ~1 w" X( l0 C- o        char *prompt_string="输入文件名";( c, C4 G; D; b
        char *title_string = "另存为";
6 \8 q/ t) D# \& P- I0 P        char *filter_string = "E:\\+*.prt";
3 X$ i$ C. i: j9 n        char *default_name = "OK-PRT";
4 f' _+ K/ g! h        char filename[256];$ T! @# o; c& |' ^3 w" M, K/ P
        int response;; L: B/ v: B9 O
        UF_initialize();
6 Z$ z# s% f" z* K        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);# Y$ _4 }+ j. N) y
        if (response ==UF_UI_OK)
5 \' N, S4 V( j                uc1601(filename,1);+ r: T, Z* F" }
        else if(response ==UF_UI_CANCEL)- {  }  t6 e! y- E# I2 R6 W" T
                uc1601("取消",1);, L8 q) |) V) v  y
        UF_terminate();3 v# H+ o$ k# G8 N
}( B" Y! e$ }" n; q
extern int ufusr_ask_unload( void )  R% T( [2 q6 M. q; j+ a- {* D
{: g! m4 \2 A4 G4 C+ G
        return( UF_UNLOAD_IMMEDIATELY );1 j: ~7 |0 n, Z; L& \" S3 A
}

评分

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

    我知道了