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

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

  [复制链接]

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

4

主题

4

回帖

83

积分

培训VIP会员

积分
83
发表于 2015-5-1 11:53:07 | 显示全部楼层 |阅读模式

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

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

x
/ {- h/ T; P# E# g' J; t
/*****************************************************************************# h6 [" b& }+ T4 u+ h
**
3 r( P6 d2 ?& m% S** createfilebox.cpp
* }* Q9 K" Z! V. @, p- ?**# P; c. _" `9 J# E! z# L
** Description:
- r# |' P1 b* V/ Z* J" M**     Contains Unigraphics entry points for the application.
: k* b, W- V  u+ I& R' D**
& ^  `  l5 x# t  Z. d% ]*****************************************************************************/" n+ @  r- K+ R! E  r' G2 B
/* Include files */
0 g0 x, [3 L& s8 q3 x#if ! defined ( __hp9000s800 ) && ! defined ( __sgi ) && ! defined ( __sun )
! C" w: ^# U' h! r$ P' t% H#   include <strstream>5 \! f0 E) p( ~& o. j4 c
#   include <iostream>7 S5 R; i0 E* G% E
    using std:strstream;6 D9 k# d- D; N  `& s! b! w
    using std::endl;   
0 p9 N4 }  ~' y2 k$ a2 m    using std::ends;
1 ~! D. Z1 x! m8 r' D  _    using std::cerr;
0 V0 v; f( t! S$ }; [#else# ~+ s- Q' ^- f. V5 N( g) p# a
#   include <strstream.h>
! N: r* Y- L# W* i$ q#   include <iostream.h>& W* X0 F8 |. {+ t9 F
#endif8 z: ?" A. B7 V7 @6 G
#include <uf.h>8 R# \+ R4 y# ]! y1 a
#include <uf_ui.h>1 \+ l# L, U  B4 F
#include <uf_exit.h>
3 N8 v& U. M; r! i# Z3 F5 D#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
# }) j- t8 H! Z3 W0 N3 W2 s0 y4 }' L  tstatic int report_error( char *file, int line, char *call, int irc)
/ H: {8 O6 a. }* V{
7 m+ x; u8 Z! [0 n# x! m( u    if (irc)' a5 i, _% r  G6 Q% X
    {
6 Z$ P! J, N- V, [) U        char err[133],
8 y  m0 |) e4 W) `% E. M             msg[133];$ n( g' a$ I4 X! H  Y" p
        sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",. A( M  H& h/ t( p1 K) V
            irc, line, file);
1 n4 v+ M! r0 B- A" w- f        UF_get_fail_message(irc, err);
8 J% X" ^( N' W        UF_print_syslog(msg, FALSE);
: [$ y# a8 a6 s: N        UF_print_syslog(err, FALSE);! H0 b1 z& l' A9 S
        UF_print_syslog("\n", FALSE);
6 p8 ^4 y/ s. [! d$ L' s        UF_print_syslog(call, FALSE);, Z# j5 f$ @2 E7 b9 {
        UF_print_syslog(";\n", FALSE);: q  G, ]/ j4 t( H; w* K
        if (!UF_UI_open_listing_window())4 t7 g; Z# j) F9 U7 N3 ]
        {
, _0 F6 n# M$ S# @" B2 E            UF_UI_write_listing_window(msg);4 B( I3 ^) `4 g+ a) U8 B6 @
            UF_UI_write_listing_window(err);) D5 @& t3 v% P' z8 R6 e+ M2 U
            UF_UI_write_listing_window("\n");2 B4 {& I7 {; i" ^: l7 T; E7 ~" P
            UF_UI_write_listing_window(call);( X7 w$ D# m% D2 X
            UF_UI_write_listing_window(";\n");
+ X/ g) Z3 ]& `+ i1 W        }' H8 z- J( r3 W4 d. X# X2 S* m
    }- T0 T' r( L4 O# F( N
    return(irc);
: Q7 T6 a: D; p- d}
& ^4 e# H" o4 @9 y! {+ J0 z* r8 P0 R6 L& [* s* I. l) }+ E4 V9 X
/*****************************************************************************
. T; y0 J7 f" A: u% g5 m**  Activation Methods
, B5 V- C; ~$ h/ v0 [*****************************************************************************/7 @$ ^* O% j# Z& w
/*  Explicit Activation, h, E( O4 m4 q4 }
**      This entry point is used to activate the application explicitly, as in" I# [0 {( x; \
**      "File->Execute UG/Open->User Function..." */6 b$ v8 |; F8 v; L( |
extern DllExport void ufusr( char *parm, int *returnCode, int rlen )) j7 B2 k+ [! _# N
{( d. I" }' x2 B1 C3 \9 }" Y1 S
    /* Initialize the API environment */- _6 _' Y5 _( y3 k. L
char prompt_string[]="open file";, ~, Y3 t! S( x# \4 u5 q7 s% i+ ?/ M
char title_string[] = "select file";7 K3 H5 u/ v1 K5 o, \' `
char filter_string[] = "*.prt";" Y+ \! H4 a/ T' d
char default_name[] = "my file";
/ [: m3 C  H! V# G9 B char filename[256];
( L+ q/ W# C5 \8 W# q% Z7 ?% ^ int response;* x, A7 |! Z. H: g% ~  F- ?
    if( UF_CALL(UF_initialize()) )
) Z' n5 ^) p+ K    {7 K% h$ ?( {, c9 A& X  W2 }
        /* Failed to initialize */# j- [# W5 A& h4 A- L  j  H- _
        return;1 J: m2 ]% p' `. C" U) t4 I0 s7 N
    }
* Q: M4 A6 e: |! Q$ |: J7 W# o    # [5 f. z7 B/ ^# B, p/ I- M
    /* TODO: Add your application code here */5 t4 S% Z1 H( P; V6 J% R# g9 @1 N
UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);//UF_UI_create_filebox$ L2 U! u$ I  F$ I4 d
    /* Terminate the API environment */
# C& a2 h% H1 L8 q6 e5 ^6 A$ T- ]- Q- C    UF_CALL(UF_terminate());3 _3 L; f% M$ Z( N; z/ D0 p
}
+ I8 k+ b, o- }# n/*****************************************************************************
$ B. c7 r/ p* K**  Utilities! |) _. Q" d* d5 {. P
*****************************************************************************/
/ k7 d8 q9 G3 O9 U8 Q# k3 c7 [/* Unload Handler
0 ^; u% }! `5 k7 |* l**     This function specifies when to unload your application from Unigraphics." Q; l5 H$ F- D% q  [
**     If your application registers a callback (from a MenuScript item or a, ]; g& m% f: b( w5 [) |" R
**     User Defined Object for example), this function MUST return
; {8 [9 o" {( E" z3 Q: j. S# L**     "UF_UNLOAD_UG_TERMINATE". */
6 u: q  H; {) \; p! \. Fextern int ufusr_ask_unload( void )
% w  m6 _$ S7 r$ G{+ p& \$ g9 B4 f, J! g. M
    return( UF_UNLOAD_IMMEDIATELY );* x; l1 J7 s: M& E# i/ E# Z
}
4 E6 B- E2 R. t" F: k+ w
! V/ G: g" I$ W# `8 }$ G
CreateFilebox.png
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

全部回复4

320

主题

226

回帖

9784

积分

管理员

PLM之家NX|TC专家

积分
9784
发表于 2015-5-2 20:07:06 | 显示全部楼层
UF_UI_create_filebox 我没有试你这个 1 }/ K0 k) c; V4 P  M
( ?6 v. @/ s* L& m
不过你加个uf_call或者看下syslog 啥问题 6 h5 B' L8 {8 b( O4 F4 F
6 ?! f' N1 {0 T$ z
该会员没有填写今日想说内容.
回复 支持 反对

使用道具 举报

4

主题

4

回帖

83

积分

培训VIP会员

积分
83
 楼主| 发表于 2015-5-2 20:18:39 | 显示全部楼层
mildcat 发表于 2015-5-2 20:078 z/ J5 L* B& \. @' \/ L7 W
UF_UI_create_filebox 我没有试你这个 0 H6 `9 e6 d: d/ @0 v

4 ^. w" Q- Q( l不过你加个uf_call或者看下syslog 啥问题

" M0 l% o8 a9 U& v1 C3 tUF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。- K5 v, V8 I2 T
我想用UF_UI_create_filebox()创建一个打开文件的对话框。UG有别的函数可以创建打开文件的对话框?
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

8

主题

58

回帖

896

积分

培训VIP会员

积分
896
发表于 2015-5-5 08:31:59 | 显示全部楼层
文星和合 发表于 2015-5-2 20:185 O( n( F3 Y, |; d' x4 b
UF_CALL没有报错。打开文件的对话框也生成了。就是在点击ok之后,UG崩掉了。! O' h0 `$ \# q2 F. L' s
我想用UF_UI_create_filebox ...
1 n2 x4 s. j& `
! E# @' V9 G# R
#include <uf.h>
" V- c4 @7 q4 {#include <uf_ui.h>
: F% Z( I) H& J- l#include <uf_exit.h>
* n& {: y% x7 ^/ V8 e& P% ~, ]extern DllExport void ufusr( char *parm, int *returnCode, int rlen )
( ~. q7 x/ m2 c* X{
/ h+ S; p' Y4 n* v( s        /* Initialize the API environment */" I! h7 [& B1 \, n7 b0 s9 B# {
        char *prompt_string="输入文件名";+ S3 W  u9 N/ j" Y- O4 n* I* [
        char *title_string = "另存为";1 T" J  v& G4 b  b
        char *filter_string = "E:\\+*.prt";
  {3 @+ ~1 S# T4 W/ C        char *default_name = "OK-PRT";9 T* }" k) [+ _! K: t
        char filename[256];+ Y' s( r  x: w6 }. H# L& L3 D
        int response;
: ^6 L+ E8 L! c8 ?        UF_initialize();
( N0 \* c' W# x2 F2 w( Q+ ?        UF_UI_create_filebox(prompt_string,title_string,filter_string,default_name,filename,&response);5 t* J! y$ [; ~% @
        if (response ==UF_UI_OK)
8 k! V+ R0 ^5 b7 t                uc1601(filename,1);
; A* _- ]: S+ ?4 Z! C: V4 G        else if(response ==UF_UI_CANCEL)
; A" O' s6 `1 ~  X( Q9 d* _- ~                uc1601("取消",1);" o  |9 ~: r/ _" ^  v
        UF_terminate();# d: Z6 {/ m3 s1 w$ _
}6 ?: G8 y6 `( A
extern int ufusr_ask_unload( void )* c6 T: l( {9 ]+ ?2 E  ~
{7 J' _- k  L- [: f. X: }3 G2 W) z
        return( UF_UNLOAD_IMMEDIATELY );9 L9 ^: Y9 \. c& P! ]; _+ L+ N1 b: v3 h( ?
}

评分

参与人数 1PLM币 +3 收起 理由
admin + 3 很给力!

查看全部评分

上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了