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

[VIP求助] 库缺少需要的入口点,功能名:ufusr

[复制链接]

2017-2-14 11:29:07 6841 0

2

主题

21

回帖

485

积分

PLM之家NX VIP

积分
485
发表于 2017-2-14 11:29:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 lzhyi 于 2017-2-14 11:32 编辑 ; A9 Z  D! A* P& w1 s' y

9 |  G( ~- T$ n9 B- t" J$ L, Z请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr
- y9 V/ p+ z: K! J3 L0 F代码如下:* k9 j# P, [. P+ C; T! {
#include "Shrinkage.hpp"1 [4 I1 t, D2 ]  }) M: F( g2 s$ g1 E" ~
using namespace NXOpen;
' v2 ~6 Z0 s* @/ w5 c: {using namespace NXOpen::BlockStyler;- @# `: n* U3 e4 k) @
4 @& G* q8 U$ E8 b2 o
Session *(Shrinkage::theSession) = NULL;
, `- W9 Q. z' ]UI *(Shrinkage::theUI) = NULL;
4 T. P2 C( v! P  `
5 A1 _, W6 g" c$ ]Shrinkage *theShrinkage;  H' l$ E% A+ Z. J- }" o
8 E' s) t/ A) O; P) b. s+ W% E( Z8 c
Shrinkage::Shrinkage()
7 U; \7 S( W/ g( c0 }+ G{
: w0 x, Q# N3 o. d0 W8 E    try* T, M, f; F# S3 A- Q. \
    {" C+ ~2 B, L% V/ n
        // Initialize the NX Open C++ API environment
3 M+ l- W) }, [# c        Shrinkage::theSession = NXOpen::Session::GetSession();
' s. ^6 x) }* l" P5 `* R8 I. w        Shrinkage::theUI = UI::GetUI();2 W1 ~( A" P! o5 l% _. I( j% p* v
        theDialogName = "Shrinkage.dlx";
; V' b! u. a7 o        theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());
7 ~* U$ C8 I/ V4 j; M- a$ D        // Registration of callback functions
1 W7 o! u* _# G; x# y5 O        theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));
4 c; D1 M8 S& r$ S        theDialog->AddOkHandler(make_callback(this, &Shrinkage:k_cb));# v9 r$ b; F( r3 Y
        theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));
, u0 I' V8 t7 D6 d        theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));: I. V/ Y, O0 G9 Y
        theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));
; A' c- P; x$ I2 b3 R        theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));- e" t/ f2 _8 L1 h* Z- v- z
        theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));
7 R9 [- r7 s; S        theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));
9 w1 L) |& R1 m8 t7 E3 g3 K6 u& B    }
; i* q/ R  d  z' t7 a2 E    caTCh(exception& ex)
7 i  ~- p+ u1 s$ x  g0 C2 z  k    {
2 p/ H7 b4 m9 ~   
4 i* @+ |9 S) Y& t        throw;
9 Y, U% J" [: d, m; p    }, u+ E) M/ |$ c& p7 [7 V$ H$ a5 d4 m
}
, z) G2 e5 L/ C) ?5 G/ T8 |6 a! q6 d) m4 f- Z- Z7 g/ @- f
Shrinkage::~Shrinkage()! ?. e' B+ |' A5 p. y0 n! y* S' ?
{  R+ r/ ~. ?# ~
    if (theDialog != NULL)
# M" l  v& ~( `    {
( T- Y. {# _5 e& a+ b' i        delete theDialog;0 I2 J" j5 g0 X" j; a4 o
        theDialog = NULL;1 d+ w4 M9 L, A7 ]) D* f5 I; f
    }) m4 t) i, A& h. k
}) g4 S& {8 t6 u
4 M- n: L8 N$ B2 I+ a. q
#if USER_EXIT_OR_MENU
. S8 L: v% L4 o, p; I# y1 g1 _    extern "C" DllExport void  ufusr(char *param, int *retcod, int param_len), c& F& S- x" I  R8 \
    {5 Z4 r% }4 E1 `2 j0 h
        try
7 N7 m( e9 ?' \5 j2 k        {
- W+ N% ~' U* `" l  P  h6 f            theShrinkage = new Shrinkage();/ ]3 d% g2 E  u6 D6 g; D
            // The following method shows the dialog immediately
0 w$ `3 d7 Y; V" t( d1 l            theShrinkage->Show();* \1 [7 u: I- w& T8 _
        }
$ U8 p6 k9 v- j5 }4 d        catch(exception& ex)
# i6 J% \/ |+ y9 N( T5 a" A        {+ F5 U. Y6 J& R# x2 l/ L
            //---- Enter your exception handling code here -----
* ~- b% F% d$ A3 X" d            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());8 w# H/ d& J/ c  y! K
        }
) N: j: t; u3 c% a( W8 b; x! ?( ?        delete theShrinkage;  H4 `! k4 s- S7 |
    }! p) R0 |5 M" x* r) b
#endif//USER_EXIT_OR_MENU+ r& b- H# j- z& Y# p  {
#if USER_EXIT, w' Z7 x" L  M6 R
   
* u/ m0 r+ n( F    //------------------------------------------------------------------------------7 e  z( \  K* J
   4 D2 z; d8 x. V# O# Z2 V! B
    // MUST NOT use this option since it will UNLOAD your NX Open application image  u, I( r* P* j0 V' {: J8 N
    // from the menubar.  Q+ X% _9 x7 Y! |
    //------------------------------------------------------------------------------
( ]* \1 W. W6 P; X) u    extern "C" DllExport int ufusr_ask_unload()
$ z2 Q* ]  M; i0 W/ O; T    {
) l( W+ e7 R1 H1 [0 Q7 u6 F+ F. C        //return (int)Session:ibraryUnloadOptionExplicitly;
. ~4 h0 j' g7 v( [- n0 K4 t! B        return (int)Session:ibraryUnloadOptionImmediately;) w9 x  q& Q" {5 @% ^5 s0 f7 T
        //return (int)Session:ibraryUnloadOptionAtTermination;
' `9 g+ ^" i1 A7 V8 m    }! S$ @1 e/ T  v
    5 s& g7 Q  }  h' P4 X; d
    //------------------------------------------------------------------------------
& {4 ]& m4 I* H4 L: ]    // This method is automatically called by NX.
+ G' r# y$ B' h# x( j* Z0 p5 Q2 O    //------------------------------------------------------------------------------
/ L7 k! p" S4 p6 F    extern "C" DllExport void ufusr_cleanup(void)  E: y6 E8 J: p: d' z
    {1 I" S* H4 z& Y  I
        try
2 q# E3 |! E" Q0 C4 A" ]        {
; X5 a: D9 ~3 ?: [, ^9 p            //---- Enter your callback code here -----
$ V) G1 H6 g7 |        }
  x$ p( b  o6 V# X) c) t        catch(exception& ex)! G8 H: a/ E* c4 {, |9 r" Z
        {7 i6 B& o& a# }
            //---- Enter your exception handling code here -----* y6 {1 m( E- j& f0 e$ ~; B
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());; K% j* `! {. B2 v& F
        }5 K' J) ~* G9 j; h
    }
. {9 k5 b" C) \# s2 p  \: m#endif//USER_EXIT
' a7 e9 X+ K& m; l* ?1 x" X   
: a5 Q& V5 [. o+ f) a3 g    int Shrinkage::Show()
2 l( \) e! B# B' ~' z    {0 U3 _' ?4 T; t- e
        try3 j" w6 D& G3 _0 X. ?7 F
        {
% r" e; {: \: N            theDialog->Show();% z1 O# a9 u. A( z) Q4 l7 G, r
        }& q. a4 G# t* e
        catch(exception& ex)
7 c: K6 W- x- B; A8 s- Q" Y        {& ]8 }$ A3 t: Y
            //---- Enter your exception handling code here -----# F9 s8 ]& N7 }7 G
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
* O4 a  w6 V$ H0 [  k        }; O) A' Y5 Z8 y
        return 0;2 f! K+ g4 v/ r, b
    }
$ J3 ?$ g3 c6 L" A    # K# U/ B: S8 R" h0 O, m8 e
#if CALLBACK
' H8 u+ F# i+ \* V$ b8 q3 n- v( v0 u3 @$ T' C1 I9 X1 v
    void Shrinkage::Show_Shrinkage()
! g* I, E  m% O, a    {
3 ]- m8 d8 G& j1 @$ m6 a, n        try
$ k& ^6 a* j& c4 H( n) _: W* A& ?9 e        {, _; ^, B& p- L. B# s
            theShrinkage = new Shrinkage();) N0 j3 V1 v+ I; M0 G
" y; H5 \  u6 o' @  j& Q" \2 u
            theShrinkage->Show();
$ V; J# S# I# I3 M  X8 t: T        }& L# i* K9 f) ~% `
        catch(exception& ex)
3 K' i/ h& `7 L4 Z        {2 Z$ q7 f2 x1 A& y) k% @- S
5 e7 h; Q) K: e  C8 d
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());$ L( s6 [  [7 J  ?. P0 {
        }
" \) G+ O/ ]3 ^6 _        delete theShrinkage;
& W2 Z7 u5 s' i+ `; a6 T    }  |  A3 ]) r0 G2 k8 i; r
#endif//CALLBACK! u' r  O& X* h% J; P3 r# L
   
3 Y$ i' s. l6 e, f# [    void Shrinkage::initialize_cb()
4 I" `$ I" b9 @; O7 M9 i3 z    {1 a2 [3 \& P, F4 Q- k( N1 S
        try: s# Y8 v/ h$ x  m1 x
        {
- d, n5 u; u4 C; ?0 r* \            group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));2 z4 J- v0 ~* z5 j! D- G# l
            face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));
$ i2 \1 Q. @2 i            face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));
) X7 U5 [2 P" @( X6 W            group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));- ~( e  {# [4 U/ J. O
            bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));
  o8 p8 F0 \" P2 o* `            bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));; h- m* _8 h, F6 n% X1 Y
            group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));
! T4 q1 |" w9 O& O/ [# G, v  u8 I, j            string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));
1 S5 l0 ~0 J0 l# j            label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));2 k: X+ u' W; L. Q" o
            string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));: E8 r( d1 N* [5 R' I
            label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));. F9 Q) r6 w' `. ]8 t  F" b  C- g
            label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));' d( A! k% S0 o/ Q6 D
        }: s% r) U+ x6 j+ z$ h
        catch(exception& ex)
9 `+ z" ~. ]! V' G8 f) P        {+ h( s4 c- p, p6 L! k6 H+ `
           
5 _1 ~  D* Z; p            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());7 s% i# @$ y0 Y: X7 l' I$ k/ ]
        }' ]# K! K8 ]. K# f: H
    }
1 Q8 [) e# A2 z, W8 A    //------------------------------------------------------------------------------  A8 o8 I7 d2 p5 A7 a
    void Shrinkage::dialogShown_cb()4 e0 Z* S( B; Z( x
    {" O/ Y- Z% ]7 {
        try# F) P: h" O# c% |% p3 K3 W
        {
" s7 S& @2 j  z+ e            //---- Enter your callback code here -----9 y; [6 o- v# t
        }. w" s( t+ d2 {% `, K
        catch(exception& ex)) X% l: O3 j1 i0 O9 [  v' e, i  \
        {4 D  `: i3 G, H6 L( D* P/ R

& H; y7 c$ q6 F# H& o" F            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());1 B$ p  q) g6 M/ M- n
        }4 {" G  w; W8 Q! j' ^
    }8 v1 p" y7 M: a( l, _
   
* n2 g8 _; e- b1 i2 g    int Shrinkage::apply_cb(). ^" B) L& ~! x) a5 D  N$ ?0 ~
    {1 A6 x9 G. H: B, }+ I' n& ^( n
        int errorCode = 0;
4 e& q, ^. _" v) E# F% t        try0 h; |7 c. R/ X
        {
! ~) R$ o- Q6 E& y' u7 _. e            //---- Enter your callback code here -----
0 E- \2 i% G7 F( N# \9 M" A        }% q& ]/ u# `2 W2 d
        catch(exception& ex)
8 n7 w! [6 g. d3 \        {
1 X7 [- O3 P9 _' C  @' K7 \9 X            //---- Enter your exception handling code here -----
' J! h  l% g1 Z- E9 ^- ]6 H            errorCode = 1;0 l" s9 Z) t. I# G
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
) F% X1 ^+ O# @; d. a+ I- V        }
. }9 |8 U$ T7 I5 ]1 x5 [        return errorCode;" Z/ d4 I/ P% i3 b, \
    }
1 d. m1 B  _) L: H( H4 k: I
2 Q- E- w/ E- e3 J* `$ U    int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block)
, H) b9 L+ n6 w8 O1 o    {
" B+ q: E. p% h( V1 A        try( E# _8 ?) M( R
        {& o/ g, }) X$ b# c  ^5 D
            if(block == face_select0)9 ~8 d, E* q; N/ q" [
            {2 z4 p! B3 n2 \2 L/ J) q1 M- ?# v4 ]
            //---------Enter your code here-----------
* q# i9 s3 A6 i! A& x& u            }1 v" w% k8 T/ p& t7 }
            else if(block == face_select01)
* a; s' T8 D8 [/ c! t9 ?& [( s1 @            {
% P$ c) h, r2 k6 {            //---------Enter your code here-----------! {2 n( ?; @" c1 y1 W; Y: a
            }6 U( L5 v4 a/ M3 A
            else if(block == bodySelect0)
. J- m& w! [4 ^            {
8 @- N8 u4 I- ?0 m' P% v            //---------Enter your code here-----------) `& \2 S- ]% C: S
            }
- q7 X" a: X$ C9 y* J( U+ f            else if(block == bodySelect01)9 f) u( B1 H4 v6 Z# `) R- ]
            {) u( B* b6 u2 A: X8 ~  P
            //---------Enter your code here-----------: A# |1 p& L6 Z
            }: p8 C4 v4 l+ v8 U3 ~* k  \7 E4 D
            else if(block == string0)) B3 D1 s. K. D1 F9 M# C
            {
! A$ ?. j  i. b  i( i" x- a            //---------Enter your code here-----------
) U" H# G/ X* Z# K3 e            }
- \. D) }3 k2 {            else if(block == label0)
: E, ^' }( ~+ \' r# G" {            {+ m( N* ^# l6 z3 n: U9 v! F; K
            //---------Enter your code here-----------$ S. [4 c4 S; y* V' I
            }5 [. ?: D+ N- X7 Y( l9 ]6 @
            else if(block == string01)7 w" K7 \: T% R+ k0 z5 l# d
            {" p# v8 X  K8 K
            //---------Enter your code here-----------
  F0 B; |+ r: W# d; J0 r            }7 S  i: }4 v* G4 p4 U
            else if(block == label01)
& k0 j  C: @% i: r            {  B6 s1 _4 [5 J+ B
            //---------Enter your code here-----------
* b- c" t: \7 I5 ?' ^3 u            }
8 b- `) {& m% r) v& Q( B% s6 \            else if(block == label02)1 p$ k! j' z/ a2 Q+ S- N2 v
            {1 f7 m8 f8 Z  Z$ \' ^; q
            //---------Enter your code here-----------4 ?/ g* o1 Q, i$ E- a9 m0 `4 w
            }
3 a, e% a3 f7 h9 Q$ y/ F1 C, y# `        }% v/ D! }$ V# R& f, `0 u
        catch(exception& ex)& u- Z$ @; C/ p3 j
        {6 F5 `6 c' S+ R$ ^( v
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());* {2 }/ G9 d& F7 M! ]
        }) J3 n8 ^  P! L/ m' s7 h
        return 0;
2 R3 W- r) K& Z0 W) t. c    }3 o* n  t& \8 P1 d
   
3 t5 @$ Q% p  f+ o# W    int Shrinkage:k_cb(): A: Y  E1 M2 L
    {+ B) U& G; k- M
        int errorCode = 0;+ n6 X" [* t$ K1 a  C5 X
        try) C6 e; t2 S4 J
        {" s* Q: O6 @1 b" g8 r
            errorCode = apply_cb();
8 \' p0 P" ]" R6 S: Q        }% m( l; g5 O: w/ f8 X5 g4 M0 g# t
        catch(exception& ex)6 O- `/ C8 L9 S/ d8 a
        {/ f+ W9 K# m8 q" ~" @& w6 D
            //---- Enter your exception handling code here -----8 p4 b# H, O8 y4 w- X$ I0 P6 M
            errorCode = 1;
: Z$ p, X8 E: I- e            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());/ Z/ m+ \1 k6 d+ f% i* Y
        }! H1 C3 r1 c0 O
        return errorCode;  S6 F3 ~, I, ?
    }
4 X4 p( F3 p% U+ \, u   
0 \+ U1 z+ d+ M( i7 o: B    //------------------------------------------------------------------------------" c3 H# k% t: r0 B
    //Callback Name: filter_cb3 r# K/ E( Z. L7 @# ]& e3 d
    //------------------------------------------------------------------------------& a+ a0 }+ Q2 p
    int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock*  block, NXOpen::TaggedObject* selectObject)
1 l1 C7 o% P6 [  G, {    {
# m: j) t/ d" h9 Q  M: g        return(UF_UI_SEL_ACCEPT);) V) M+ K  ~6 l( E+ H  I: [# g8 J
    }
2 h6 ~4 C. h1 X' K; |1 U# q    . j, T1 k! j. H7 h- A
    //------------------------------------------------------------------------------
* ]1 r& \: t6 l* n7 ?0 V    void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)" b9 d4 X, {! P
    {6 b& @8 H  b$ T9 J- V
        try9 l0 q4 S+ a; m8 [0 G7 J
        {8 @/ _: l, d% h5 [1 _6 y8 L% D
            //---- Enter your callback code here -----( d0 l  g. v$ k
        }$ O$ r. H' m8 u5 W8 E/ Z
        catch(exception& ex)
" r4 F  L# g, Z/ C+ [( x5 P        {* C8 b. ^& m$ ~( U, Z  F0 _; l
            //---- Enter your exception handling code here -----
. ~4 a$ k* e; D            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
. |" I7 d5 y5 o        }
- p, S) P0 Z4 N0 z/ O8 S    }2 m4 b$ Z" u; k2 z
   
. Y  [+ p+ x; I  J    //------------------------------------------------------------------------------1 R: F1 i% C! Z
    void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus): r4 F3 _7 D  Z3 R+ E
    {, ]( d+ ]8 i2 k6 q" B' a( j1 G
        try
/ ^3 O1 L( s" j7 H; [+ f4 P( m        {
" {+ D' G3 Y. ?% T" ]) ?            //---- Enter your callback code here -----
! f% Y2 k3 W, U. D* j4 D0 r        }
8 @1 O8 J/ j! o3 h& z- `3 s) {) X        catch(exception& ex)5 Q' G& v+ ^  a0 d* s9 h) p9 B/ Q
        {3 n6 H/ n6 c) v) l) \9 T$ c6 j9 \8 b
& \% \# g6 V' J) ~; Y
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());; B1 W! G& u6 {' \. |# I9 A6 d! d! t
        }! \6 U  X( l3 c! x. o9 {
    }
2 ?; y0 ^2 V" V+ Y0 o8 O
; S# Y0 A* q% a* d  a0 T. B3 e+ P5 z! T4 \# o
22.jpg

application.rar

9.79 KB, 下载次数: 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二次开发专题模块培训报名开始啦

    我知道了