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

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

  [复制链接]

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

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

文星和合 楼主

2015-5-1 11:53:07

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

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

x
0 i  t0 _+ i* D; M8 o6 x5 O* X
/*****************************************************************************2 {8 W$ w) A' h. C0 O
**. z; c7 G. c8 c) v* r( g: ?& _
** createfilebox.cpp
$ g: p# J* \" Z+ u**8 z5 J; |7 U) F* k4 ^7 N$ b
** Description:( A* {6 e- V$ {6 @: K+ \
**     Contains Unigraphics entry points for the application.( C) o- V" u8 l" ~! N0 X. W: ^8 V
**
3 W2 M, N: E% I& d2 `*****************************************************************************// e1 B; Z; T+ |( E
/* Include files */4 ^: X5 F5 Q# Z% h) q; J
#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun ): N) x2 ]4 |1 a$ D6 P
#   include <strstream>& `# i" l3 ~% M$ C% e" \6 U8 ?) d
#   include <iostream>: N- i9 R" J* U, P' @+ H$ [
    using std:strstream;
+ z. E6 o6 @( P: f5 O    using std::endl;    8 [2 ~* J7 a" }: d
    using std::ends;# l* s5 G, [  b0 N  Z9 L, r
    using std::cerr;* G! g( p- ?" _+ Z2 }. E
#else
' j& L6 P3 M; y# i$ E4 s: [7 T3 \#   include <strstream.h>
$ c" O6 y- ]2 _. u4 |#   include <iostream.h>% I& c( ?/ D) @, r
#endif6 T- \: J' ?# o6 K
#include <uf.h>
3 S! Y1 X3 W$ P/ ]! L. x#include <uf_ui.h>
( {" _. @  m9 D# Q: n3 M8 Z#include <uf_exit.h>
. `3 N1 U. o7 w5 w9 _, s#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
& y9 P* @& t7 f/ B/ ostatic int report_error( char *file, int line, char *call, int irc)& s) k; [0 P& g; P, u8 P, T
{
* f2 h. Q% a1 s3 t& C9 ]    if (irc)5 j/ Q( U  B2 [) J7 _
    {
' @5 \' I' w, i, H8 h        char err[133],& h7 L* ]: H& _$ C' A
             msg[133];
- k, \9 [  _# y        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
- V1 [" u! z9 |            irc, line, file);
/ f4 L" S! H2 O! [# ]7 V; C        UF_get_fail_message(irc, err);
( V! r# k$ p, n, M7 Z  h) p        UF_print_syslog(msg, FALSE);
; p2 d7 y- q3 k+ M- L. X2 E        UF_print_syslog(err, FALSE);$ ]7 H" t8 j/ P
        UF_print_syslog("\n", FALSE);
! ?: F: K* ^1 G0 d0 \7 `# k        UF_print_syslog(call, FALSE);
" D  c0 Z: s2 v, r& @        UF_print_syslog(";\n", FALSE);/ i; s, o* E. k% `: K
        if (!UF_UI_open_listing_window())8 e9 W: C6 h) J$ x* R) e
        {
  }8 v9 C% X0 I0 P: w! S) m: c            UF_UI_write_listing_window(msg);
$ F, I5 r5 x! c" r            UF_UI_write_listing_window(err);
3 F8 U; P- J( g$ ^! v% a            UF_UI_write_listing_window("\n");
- h2 ]7 e8 a6 q( u" v            UF_UI_write_listing_window(call);
+ c; l% Z% G  R3 ?1 ]# t            UF_UI_write_listing_window(";\n");
9 t3 C1 a5 P9 k0 b+ C        }) M5 U& C) s, P$ h7 ~0 T% A  j
    }, c1 k; n+ i; L4 W: e4 w$ U
    return(irc);
+ @, `' R/ D0 L# Q/ {8 r9 z) V}
5 w+ r7 u5 o7 y+ P5 J2 F
- e0 D& b9 s7 L: S9 \5 @/*****************************************************************************% U  K- B. C4 E7 W/ |; a8 J: M  {" h
**  Activation Methods
" L! Q7 e: j- C2 U! y* h# L. E& ]*****************************************************************************/9 z$ B# y) z* O7 K, S3 i' R/ k
/*  Explicit Activation' U- y3 G1 u6 X+ n8 _
**      This entry point is used to activate the application explicitly, as in  Y  r3 S/ U; I* w, S% [4 n
**      "File->Execute UG/Open->User Function..." */. h+ U0 b2 _0 L
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
, t  _4 E( ^( M* [& }0 s{
' E' J7 W) `8 U% C/ z    /* Initialize the API environment */
' W! ~. g) c- c) n9 q char prompt_string[]="open file";
3 r+ f, B( a- v: T. R6 c+ E4 ~5 C char title_string[] = "select file";
0 X- A+ X, j3 D$ v char filter_string[] = "*.prt";
2 m# l2 Q" C# s) ]9 A0 | char default_name[] = "my file";
9 H- \. b. {: |8 \9 s, Z) { char filename[256];
! N  W/ _3 H" P. S! b6 r int response;. G" n3 g9 d6 g; V7 B
    if( UF_CALL(UF_initialize()) )
$ b/ ^7 \7 Z9 a0 q& ~7 j    {8 I- C- F/ }6 U4 ~* _0 b, b& C
        /* Failed to initialize */
- G+ `5 X' l" {$ ]' |        return;7 O% w: W7 w/ G# ~
    }
0 Q4 G, f; m& i, T2 p9 f- I0 E   
5 D0 Z, M0 _$ _- Z1 Z2 S    /* TODO: Add your application code here */" H' ?/ R, K  K( a
UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
# l. x$ D' g# L: I4 ~    /* Terminate the API environment */
4 q% W, d+ f$ M. |$ `    UF_CALL(UF_terminate());
+ B0 C. N  S1 a# T- T1 x' C  y/ B" J& J}2 X/ U7 P2 f3 E& b
/****************************************************************************** {9 D4 l" [; W' e
**  Utilities
4 g9 d6 n- Z: R* j. t# \*****************************************************************************/9 c5 n, l( n! E5 M
/* Unload Handler2 E- N) s2 E3 h) u# n5 a
**     This function specifies when to unload your application from Unigraphics./ e$ M7 _7 d# }" O
**     If your application registers a callback (from a MenuScript item or a' U; D, b2 R7 n5 q* n! c
**     User Defined Object for example), this function MUST return
. V# `8 Z. G0 d3 T; ]& L. b2 k**     "UF_UNLOAD_UG_TERMINATE". */
( i1 d! |  _* Z( N4 textern int ufusr_ask_unload( void )# V2 X: l; ^) f, O& k
{5 e* Y4 W/ d2 g& `. S
    return( UF_UNLOAD_IMMEDIATELY );
# x8 D( E1 Z' v$ f* J: J) U  K}
, o% ?1 r' N. d: f# ^
( x8 Z- W9 A6 L
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 我没有试你这个
0 A5 A. f8 ?* O' Q' D% f, _  D/ L# h0 e, F. e
不过你加个uf_call或者看下syslog 啥问题
) D" n0 |9 z+ i7 N1 c  }) b7 X
: p- p& |$ d6 A! ~; R
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:07; s" b4 v! V# W$ [0 {
UF_UI_create_filebox 我没有试你这个 % r( O, Q4 m  q3 I3 j
. Q4 t$ _8 U, y5 B! v( g
不过你加个uf_call或者看下syslog 啥问题
* c+ U* @% S  Z& [9 @, ~" Z
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
0 T1 H( i+ f& M4 A我想用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
- m7 R0 w% u5 Q  c! F$ S  l7 S$ \UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。  W( h% T/ e7 O1 \1 j
我想用UF_UI_create_filebox ...

# |7 h4 K- J9 o3 x% F8 \; w9 |  f2 i: z$ n; M; [9 h3 K, r
#include <uf.h>
5 q1 E5 |  @! f6 x6 B3 c. o3 L#include <uf_ui.h>
: l8 o2 [) `- n#include <uf_exit.h>5 [( f7 T+ \: t/ p
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
( u& ~; X8 J8 Y/ h{# _$ I* J2 U, w) x1 i7 D
        /* Initialize the API environment */
1 S3 K6 r2 q, h+ \* {$ x9 b9 j5 q        char *prompt_string="输入文件名";
4 G! g/ E) p5 T" n5 m2 K& w        char *title_string = "另存为";
5 z: F: n$ \7 ^5 Y2 Y        char *filter_string = "E:\\+*.prt";# n8 k( c, v* b) r
        char *default_name = "OK-PRT";
& T# B9 h* C  ~9 H" `' i  v        char filename[256];4 Z2 Z" ]* m( s7 D! s
        int response;; D) S+ y. W( ]0 t' e/ O$ W
        UF_initialize();
7 s: b' a" g( ]/ z4 h7 ^        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);
  M8 x* j: Y# @$ T7 \; f        if (response ==UF_UI_OK)
# A# i, M2 r! X                uc1601(filename,1);/ f: ~0 }5 T/ o6 q. v2 R3 a% V2 b
        else if(response ==UF_UI_CANCEL)
* X0 y7 r, D$ D, ]9 v& X                uc1601("取消",1);
, E; H" {# G4 \3 m+ d* b$ q8 G        UF_terminate();$ @2 f2 r. }" \" D
}
: G) t1 m, @, [extern int ufusr_ask_unload( void )% x# \- }; z* D6 m/ g- O
{# B* s: n' \/ V& Y1 |& |
        return( UF_UNLOAD_IMMEDIATELY );
7 t( h) ~/ ]" S8 C* Y+ a7 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二次开发专题模块培训报名开始啦

    我知道了