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

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

  [复制链接]

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

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

文星和合 楼主

2015-5-1 11:53:07

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

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

x
4 a; |' i/ |$ q. ]
/*****************************************************************************
) O  K  r/ V) C5 k5 t2 @7 S**
1 [6 [. I2 M! t** createfilebox.cpp
! m! N- V3 y+ w" q**2 I! B' g. \2 ?; C- J1 b" @  T
** Description:
$ ]: T; ~! d  S! N+ t; @**     Contains Unigraphics entry points for the application.' k4 z+ l$ _8 h; m6 A, Q
**9 C0 Z) S; E5 I$ B, n' Q% L4 P
*****************************************************************************/; x! e( w* H8 ?- u5 L7 ^
/* Include files */
4 P; @6 e' A! {0 F5 N#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )6 Q* M8 g6 e0 I7 ?0 G: f
#   include <strstream>
9 [, X& t5 m4 x! C- Y#   include <iostream>. c  |' O& `' x" }
    using std:strstream;
, _- c% @0 k& S# O; I2 ^$ }$ m    using std::endl;    5 x! T- H0 |# A: f
    using std::ends;
1 i( u9 J4 Y1 r' J% f/ P    using std::cerr;; q2 ?) \4 {8 b, n
#else" i9 {; I( X$ X* v
#   include <strstream.h>! d' f; e8 W! p
#   include <iostream.h>
& E9 X. _; |. p, J#endif/ G& ?/ h+ l& q$ e
#include <uf.h>
6 r% J1 P6 s+ M( }2 [#include <uf_ui.h>
8 k& K6 e' g3 P0 w; T8 p* [. \5 T#include <uf_exit.h>
- i: n; H* o% i- l#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
* j3 [. u# t$ |% b0 g& a2 P. Xstatic int report_error( char *file, int line, char *call, int irc)% c7 K( d2 P. P: G9 ]) j# W$ D
{, f* r5 D" M# s- x) r7 o  h
    if (irc)
! h) h9 W  i$ k! \/ u/ {  i    {- `8 Y0 ?) z/ w9 x
        char err[133],
2 X) k- ^3 Y0 k) v6 O0 p; }             msg[133];
, E, k% x( z4 H; G5 y$ e: J) r3 e        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
3 l) Z2 r/ q- x9 q            irc, line, file);
( h% c9 b( b0 Z        UF_get_fail_message(irc, err);  b* }  V; {/ F2 a# Y! g
        UF_print_syslog(msg, FALSE);
0 z' H6 e4 [4 ?% g        UF_print_syslog(err, FALSE);6 @+ I" h' @3 F8 e
        UF_print_syslog("\n", FALSE);2 V# G8 D8 d; b, l1 l1 E* O7 J4 T. F9 X
        UF_print_syslog(call, FALSE);
: D% s1 [, o# [0 \        UF_print_syslog(";\n", FALSE);! g) F3 P# W  i# l) m: s4 l6 F
        if (!UF_UI_open_listing_window())
) V2 B3 c* P9 j6 y1 h        {& W3 ?9 Z+ {2 U; n* X' P( Y, l* w
            UF_UI_write_listing_window(msg);5 @: m* [, j  j! R. G
            UF_UI_write_listing_window(err);
& a- g9 \: }! a  @8 r/ q4 L            UF_UI_write_listing_window("\n");# |# \, B7 G: W$ c' M6 q7 O0 Y
            UF_UI_write_listing_window(call);& p2 w- J( ^1 [
            UF_UI_write_listing_window(";\n");5 {) F6 N, p3 h; `2 [; h; B1 R3 s( P
        }% |: @- k8 b: |1 e- V& m4 a# x, b- W
    }5 X' Y7 ]8 s0 B' Y0 Y  h) s
    return(irc);4 D' [3 [3 [# Y- w8 E. z1 B% x+ |
}  b' g: |/ C; {3 K6 K" U+ O
: {. J! ^9 z6 |& t! n
/*****************************************************************************
: K/ L& g2 Q1 S2 l; L! B* T7 d**  Activation Methods  z( `& z; x# `$ z
*****************************************************************************/$ @6 w) n/ m/ E) z) y2 k
/*  Explicit Activation" j( U: k9 q$ ~( c! a8 V8 E
**      This entry point is used to activate the application explicitly, as in7 m- w, m1 X5 S# W) t9 C$ {
**      "File->Execute UG/Open->User Function..." */
7 m& G0 B4 @# ^. C/ `extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
+ ^6 C& v# {- ?" b0 {2 J/ H. O{; c/ T' E: y) P9 n; P
    /* Initialize the API environment */
% y' b/ Q$ j& J5 e char prompt_string[]="open file";
5 W' Y. |7 j& M& V$ U- w. R# T char title_string[] = "select file";, y7 P2 d: E# Z  ]# E9 W1 _* e
char filter_string[] = "*.prt";9 P2 i+ K( v/ q* B; s8 B' x4 Q
char default_name[] = "my file";3 U, Q& j  u7 U& `, w& s
char filename[256];6 ?$ R3 G9 |. I
int response;4 v8 q! L( j) k6 m. N
    if( UF_CALL(UF_initialize()) ) 9 {! {% ]: x. e; F4 w, t
    {
6 d9 c* D* O& Q1 m& j. K! H        /* Failed to initialize */% m) ?- i: ~; S. b( m5 ]& K5 K7 J
        return;
! T8 _) T" ?. q1 h    }- U  n3 j! r+ m. D0 b
    0 u5 J9 I- m0 ]5 H
    /* TODO: Add your application code here */
/ ]. a+ n: _* P" C( C4 S( O  A UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
' @' c5 q4 @6 Q  M    /* Terminate the API environment */
7 X$ @! i$ }  ?  T% j+ Y, U6 O    UF_CALL(UF_terminate());
, }$ l# y8 h6 [+ M) y}
* O$ P6 Q3 |2 j4 n) ~$ g/*****************************************************************************
8 c! s& @/ b( k**  Utilities
; Z4 h, K' R, X- i2 N*****************************************************************************/
' Z3 i% u$ V; k; V  \4 q/* Unload Handler  O6 l# Y4 J4 x
**     This function specifies when to unload your application from Unigraphics.: f4 z. p; G  t6 Q
**     If your application registers a callback (from a MenuScript item or a
# z$ a& n5 H! K' @  ^6 O# q**     User Defined Object for example), this function MUST return
4 B$ f: p7 x1 m% {- S5 I**     "UF_UNLOAD_UG_TERMINATE". */, W1 g& J! D# B  F
extern int ufusr_ask_unload( void )( ?) S! B3 Z; P: M/ A
{) ]4 J. m* }4 V) e/ I$ T
    return( UF_UNLOAD_IMMEDIATELY );. n0 {& x, b  @4 Y( W. d2 w  r9 v) q
}
. A. x5 |/ h  ~9 p' b4 J6 a* O7 ~3 V
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 我没有试你这个   H2 F6 s8 v4 g! G9 o8 V# R5 |' ~
( @" C; A; v/ }6 I: l* l
不过你加个uf_call或者看下syslog 啥问题 8 q9 R% ^  X! F0 |: ^$ Q
( F! R- z' e; [. A  C' S
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:079 ^% ?8 @1 g5 l/ q
UF_UI_create_filebox 我没有试你这个 : U6 G; O) }# ~  y+ m* B3 X

' B5 Q& K  }9 Q, r5 m- W. n不过你加个uf_call或者看下syslog 啥问题

9 i& P! L. R9 l2 p8 V3 |UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
3 x" T$ i) R9 ^) S" 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:180 \# N9 z2 v5 J! W
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。/ ^/ d, n$ w7 `6 {
我想用UF_UI_create_filebox ...
* d! Y3 }5 s; D
. u1 _; H- ]5 M( H1 o7 m
#include <uf.h>
( x7 h5 k) P% w$ W2 H: @#include <uf_ui.h>1 e; i0 f$ `3 g3 `) \
#include <uf_exit.h>  J; F( t7 n6 f
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )& T: e# ]- z, F6 y0 u
{0 k; ?: m- L: Y7 z. Q
        /* Initialize the API environment */3 z0 _# m" U. O
        char *prompt_string="输入文件名";, Y" d& R9 _( q; S& X% y5 P1 C3 n3 Y; [
        char *title_string = "另存为";1 T9 ]/ I. j' g, b
        char *filter_string = "E:\\+*.prt";
$ ~; c; z1 ^/ ~% d/ j        char *default_name = "OK-PRT";
+ v: r- ]4 h5 Y4 ^. \/ j        char filename[256];
: d, S$ W6 A  u6 [, Q% `        int response;3 R$ G; O$ D9 a% r3 w$ l
        UF_initialize();
3 o; ?7 k( S/ o& d# S6 M( P( \3 d        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);: m, p7 D( K3 I6 K
        if (response ==UF_UI_OK)
" @3 p$ }4 a4 O6 ~+ d- D' K                uc1601(filename,1);' a7 G+ A/ W0 e' B# ^7 P2 V7 I
        else if(response ==UF_UI_CANCEL)/ r; q( L6 c' B/ T  q/ d3 W/ Z
                uc1601("取消",1);( D( t, r; s3 M* y3 }
        UF_terminate();
5 \# N; S' q" ~3 u+ I0 V! ^}
; G' [+ E0 U8 N: vextern int ufusr_ask_unload( void )
9 J1 s$ Y3 D5 ?( `{
1 s# [( h8 y4 q        return( UF_UNLOAD_IMMEDIATELY );
1 H& f2 `- q3 L: d* n+ B! ~}

评分

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

    我知道了