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

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

  [复制链接]

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

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

文星和合 楼主

2015-5-1 11:53:07

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

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

x
3 y5 x  w( i3 a; p, [
/*****************************************************************************% C; u. s* J# J$ Z
**
; c+ x1 f5 b! p8 a! Z& I, r+ u& v** createfilebox.cpp" q0 T; `! _# e
**- U2 |; p5 D' ^; h
** Description:
( {& G2 _8 \: H7 g* H" ~& S**     Contains Unigraphics entry points for the application., x0 z0 P/ p2 U3 D
**8 t0 i  w3 l7 F8 x9 v
*****************************************************************************/
& l: K) o) R5 Y2 `; k8 I- ~- c/* Include files */
, |8 q4 V+ F8 p5 n3 W1 L/ _#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
5 ?" R: r& R& u/ S6 X#   include <strstream>
4 w! }6 H# O( R# G#   include <iostream>0 z+ d' M/ U. O6 r, G- x
    using std:strstream;1 o. ]- Q* ]' a; m
    using std::endl;    $ ?* t- m0 p; N8 ^4 S
    using std::ends;
7 \3 h8 g. W2 d: g0 D2 q# g    using std::cerr;
( U5 _  w0 f* a! d/ q#else
* ]7 S% g! m! ?$ w; d. @: a7 s3 W6 e#   include <strstream.h>
& L# W, k$ d7 A3 Q8 q$ d( l#   include <iostream.h>5 |8 d) x8 W5 R6 g5 M! L4 |6 h
#endif
( M+ N  x3 |7 K7 O; l! F#include <uf.h>& S! ?( n8 ?; U( [2 W$ q
#include <uf_ui.h>+ ]+ W. V" U: ^# Z" G; x! L
#include <uf_exit.h>, Q2 |$ [$ P5 c' y
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
6 V. [, B. _4 T* F/ h$ |static int report_error( char *file, int line, char *call, int irc)
5 A6 z6 U) S9 A5 C, U: b{
: _0 E4 D3 W3 C# k7 D. t" I9 U    if (irc)
; N- i- Z1 l1 r6 e2 l1 |    {" X- B: I7 D5 I1 }4 I4 Q
        char err[133],
$ I2 Q. X+ l$ j) ~9 K( U4 \: m             msg[133];
! T7 g) u" t' d% C. ]        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
3 W2 O* p* V: s6 I7 Q            irc, line, file);# _. s0 i: f5 G- R1 {2 }% k' X
        UF_get_fail_message(irc, err);
( Y8 }4 b( q& L& D        UF_print_syslog(msg, FALSE);$ e- B5 e( A) u
        UF_print_syslog(err, FALSE);! {# O( _9 `5 o' i9 K+ U+ \% h
        UF_print_syslog("\n", FALSE);9 J+ m; |) U$ s4 a1 b" m  B
        UF_print_syslog(call, FALSE);$ s; r! \8 O' s
        UF_print_syslog(";\n", FALSE);- ?) R9 a; H, O) }
        if (!UF_UI_open_listing_window())
2 c/ q, s# T& R; U0 ]! p9 n        {. ~% p# d5 T5 c* @0 w; F/ w! r
            UF_UI_write_listing_window(msg);
+ |2 w3 C3 g! J0 m1 f! J4 `+ D& d$ b            UF_UI_write_listing_window(err);
: N9 \2 `# _$ c2 h            UF_UI_write_listing_window("\n");
$ ~$ G# ~( o! t3 f            UF_UI_write_listing_window(call);
! R3 k3 x- z! U& S            UF_UI_write_listing_window(";\n");4 D: E/ V% p' a. \" L& ~  M0 J
        }
* x! T# C& B/ R( S    }
! {7 U# u" o5 @  _    return(irc);0 d5 A: E5 D' e% j6 z- d# X
}
# B/ I! F$ Z# o  T4 w, K# o
& w; o9 m/ u/ e8 O6 \& g/*****************************************************************************3 ~1 _( c, y" Q) N4 l9 u" S1 M
**  Activation Methods
" K/ z/ P6 T7 m% K6 v/ W*****************************************************************************/
8 y5 Y( n* d1 D# p5 B/*  Explicit Activation
/ N8 ?# p: w5 _; S( }**      This entry point is used to activate the application explicitly, as in
! Z5 x) \8 O6 F: H: Q0 u**      "File->Execute UG/Open->User Function..." */
; [8 X- Z4 M1 J: D8 s5 {5 jextern DllExport void ufusr( char *parm, int *returnCode, int rlen )$ Z% n- ]$ j9 J0 {
{
# U) C& R8 V' B, |    /* Initialize the API environment */
8 O4 L* q9 v, Q  x: ~ char prompt_string[]="open file";0 y. P# r3 c2 i
char title_string[] = "select file";5 c* @0 `' r5 m7 c2 K: ^0 {
char filter_string[] = "*.prt";
2 ^* j8 z/ w0 f char default_name[] = "my file";
* Q) D( n# _' X: ?. p8 E! P char filename[256];. Z4 X% w' w) t3 k5 k6 R; D
int response;
6 Q* I0 I; b" W' K    if( UF_CALL(UF_initialize()) ) , Y* k: g( r/ P# [
    {
* A+ u' k' E2 {" h" o        /* Failed to initialize */3 e  v' i; Y' Y7 b- |! M& Z; b! u
        return;
! P( {" `. B7 _! [5 I  q) c    }
# W+ f$ ^9 E% e" C   
  r6 A$ q! Q  P' A4 J7 J    /* TODO: Add your application code here */: Z6 Y8 Y( M& q# F
UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox
" T- g' [# ?. ~2 {2 X    /* Terminate the API environment */
5 y* R5 v- W! P3 [    UF_CALL(UF_terminate());) H: ~/ ]* t+ R7 {$ ?
}: g3 f3 {" b7 }1 n* M2 w
/*****************************************************************************2 d" j5 @: b2 F0 G2 Z
**  Utilities
5 v/ [9 w" k1 S) X; Y+ \0 C- [*****************************************************************************/6 ^/ W) q4 P" F' p
/* Unload Handler% ]9 y8 E- \& b
**     This function specifies when to unload your application from Unigraphics.
) \% S  {' E9 U2 H% M7 H**     If your application registers a callback (from a MenuScript item or a( ?5 S- X6 h# H% k1 |; B# Y' @
**     User Defined Object for example), this function MUST return- R2 t1 T# m: ^$ Z5 w6 K+ [
**     "UF_UNLOAD_UG_TERMINATE". */
% P% `& J' I- O* a7 Z$ C: }extern int ufusr_ask_unload( void )
, z2 |1 ~( m& V4 e3 b{+ u2 j- u2 B; ~; O2 c
    return( UF_UNLOAD_IMMEDIATELY );6 D! q  S* y8 m3 W' k
}
* b$ c" l9 y$ t
: U5 o( g  Q+ C, H( j/ d7 q! C
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 X9 ^. R5 B& n3 c4 g# q) d
+ A* p" _# N: H) Q% U$ M不过你加个uf_call或者看下syslog 啥问题 9 h' F4 C! Q5 A" @, [
4 j; S( O( U( Q4 U
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

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

文星和合 板凳

2015-5-2 20:18:39

mildcat 发表于 2015-5-2 20:071 @+ z2 `; r) j
UF_UI_create_filebox 我没有试你这个 ! R8 Q' U$ s* Z# H, X. u- V

$ `8 c( @+ S, I  ]4 K: F3 l1 b不过你加个uf_call或者看下syslog 啥问题
" o% d& V. L0 ]' |
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。* G+ u% z% h, {* P8 T: ?+ l* T! o3 g2 q
我想用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: m+ z' Y* ~7 `* {/ L
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。
) U4 l6 s. ?2 G  \, `: \: q我想用UF_UI_create_filebox ...

2 u, M7 s# C  `  H
6 b2 {% h, O7 {+ K% p% x0 a#include <uf.h>% I( v( A, R! U7 o3 y4 M$ g; E
#include <uf_ui.h>
) l8 G/ Z) |8 i' c, ]& t#include <uf_exit.h>9 Z( T0 w. n- }# J* i; o0 K3 A
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )8 n6 {+ w$ ?% W& h  v1 s  m
{2 E" A$ Q2 T2 j/ @; W1 O
        /* Initialize the API environment */3 j" I, |/ ?/ W+ z4 C& R5 O7 D& W
        char *prompt_string="输入文件名";
& b/ \  E; F& {9 {% y7 w        char *title_string = "另存为";" P" |4 I' P4 v) v5 }
        char *filter_string = "E:\\+*.prt";
0 j/ Y, q& T8 m7 v- c/ p2 E        char *default_name = "OK-PRT";
* ]' y" y, l0 k2 n& J# ?        char filename[256];
4 ^# e( j* A9 I) ]        int response;$ y) W6 n8 B; l- t! o  u# O- B5 f8 _
        UF_initialize();4 c% |, N1 R' w, ^% L# M& b& ^% ~
        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);! R7 U9 V1 Y# ^1 Q* K  O6 k
        if (response ==UF_UI_OK); X* ~$ O0 N  m
                uc1601(filename,1);7 k3 F) J# g: ?0 [5 F6 Y
        else if(response ==UF_UI_CANCEL)
7 Y' G3 \' v" g4 R% y% w                uc1601("取消",1);
0 E9 H) X. _' |1 A% A+ @8 [9 h! T        UF_terminate();
$ z9 l+ }5 G/ K- O: q! ]* p}
0 Q) ^, I' u0 v% |4 Hextern int ufusr_ask_unload( void )
4 {1 q- S" [! I9 |% i{
4 B5 P6 O" F$ t  {* s% O7 T        return( UF_UNLOAD_IMMEDIATELY );
6 }; h8 N, G' M8 W5 X7 k* k  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二次开发专题模块培训报名开始啦

    我知道了