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

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

[复制链接]

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

lzhyi 发表于 2017-2-14 11:29:07 |阅读模式

lzhyi 楼主

2017-2-14 11:29:07

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

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

x
本帖最后由 lzhyi 于 2017-2-14 11:32 编辑
2 ?$ I3 B, d; w* B: d; Y  Q. S4 A) O
请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr: r  W, J8 j8 @
代码如下:
5 E! O' g2 }. R5 h% k" a, i9 f#include "Shrinkage.hpp"4 K- F* O3 c7 ^9 k1 o6 ^# Q
using namespace NXOpen;) S8 d9 s* F# Y( ?0 N
using namespace NXOpen::BlockStyler;) H' e- n( O% k* T: J

' \/ F1 `1 D& x; [+ e3 v: `, l* kSession *(Shrinkage::theSession) = NULL;  D' v% h$ s1 d) A
UI *(Shrinkage::theUI) = NULL;
& _" V. P  b8 X$ d- G3 P# o" O
6 |; }9 j5 c  O: }% D% dShrinkage *theShrinkage;% P$ |$ q; D1 Y3 R

3 z8 z7 S) C( C3 W, QShrinkage::Shrinkage()
6 X/ n8 B$ j2 c4 D  J* ~{+ Z, S* ?5 V; n$ y# y; F
    try: {$ s0 O1 X- c- Y, k1 e  W2 o' X
    {1 }7 t6 i/ l! H. z
        // Initialize the NX Open C++ API environment& N$ ?' K, ^; H* o% V
        Shrinkage::theSession = NXOpen::Session::GetSession();
9 B- t. W3 t# E        Shrinkage::theUI = UI::GetUI();* B" j& G) L( t3 l( r
        theDialogName = "Shrinkage.dlx";. y) _, x+ q6 ~5 V9 E
        theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());
3 |' g/ Z6 ?0 p* d        // Registration of callback functions
. M7 h, I' p* J* a4 b        theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));9 B3 ^5 [; o7 `: a( o& X/ ~
        theDialog->AddOkHandler(make_callback(this, &Shrinkage:k_cb));( u2 x; L. H5 C
        theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));
# c" G" T, @7 Z1 d" P        theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));* \& p+ ?7 C3 J  L+ z
        theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));; t( W& P( F! r) m% J
        theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));& I- e% M" Y$ I0 j: G! m
        theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));
% c/ F; M0 P- `: A1 \        theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));2 m  k7 m: T) D
    }
. P( }% p$ \5 a: F2 P; ^% \: n    caTCh(exception& ex)+ S7 d) J( U) @5 j8 S4 i
    {% D6 ]- A; X# H# e2 J
   ( T* {/ R# V. q8 d
        throw;
& C5 q/ G2 d7 K% d9 N    }
2 r! I, @* K9 G. h% C$ q' Q' T2 ~6 m}. Z+ M* A; \) w# w! b: `
% R2 \3 f$ n: X7 I1 _( ]" r" o
Shrinkage::~Shrinkage()
3 u: v& W2 m2 {  W{6 ~- m3 h. N  W  c% J/ K7 _
    if (theDialog != NULL)
4 T  r, J5 r) A( _3 ]* ~6 ?    {. k5 E% n0 C+ ]/ c3 k1 ^  R
        delete theDialog;/ y2 S, V* t  J% U1 O- J) K. t
        theDialog = NULL;  b- l5 k4 @- s+ m9 k/ o2 S, T: e. Q
    }
1 N& E1 w# i1 d5 R$ k, x% W6 N2 B}+ A( J5 U& T3 A4 J) Q- j
# P3 {+ `2 X2 _, I7 t
#if USER_EXIT_OR_MENU
% ~3 v7 p  H# D; ^8 o    extern "C" DllExport void  ufusr(char *param, int *retcod, int param_len)6 r! k6 X8 Z. Z7 n0 K! s; Q
    {! R$ ]7 H; Y3 ?
        try4 f4 q' a0 e# V
        {
" Z( x9 V8 n! r0 Q+ w1 Z5 m            theShrinkage = new Shrinkage();
6 w5 \# a" O$ k. J* M            // The following method shows the dialog immediately
; q7 F4 E+ W+ q# j            theShrinkage->Show();9 v. F3 A7 y4 L$ X9 q4 j2 }( ~
        }
, f7 b$ B. {$ F) W% y  E, h! m4 u        catch(exception& ex)
+ F( }: f5 r: N8 b4 e3 X- y+ E  d8 m        {
0 O. z: S( x# a$ F$ o1 ~            //---- Enter your exception handling code here -----
$ I6 b& K4 D. L- S" [" |& g* ]            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
( x# K. @# {$ }- b2 }        }
+ B8 U9 t/ ~; I0 ?        delete theShrinkage;" e# I8 X8 r4 X
    }, @9 H  ^& |7 y3 r2 j" ?
#endif//USER_EXIT_OR_MENU
  }8 i5 [* Z( G#if USER_EXIT
( I7 V3 h9 Z( {! B1 T4 i$ k   
2 {7 m8 w0 ?5 J6 U# R/ O! d: s3 K    //------------------------------------------------------------------------------; d& @8 x/ n3 v! ?% L5 z' I
   
$ N' W! u/ K: Z" `+ s- Y3 b% A  Y" h    // MUST NOT use this option since it will UNLOAD your NX Open application image4 \- h' L, p5 h$ ~& j1 G# a" v
    // from the menubar.
5 |+ v- Y/ O+ a2 s7 j    //------------------------------------------------------------------------------/ _" w, j" B2 G5 b5 d5 W; L4 v
    extern "C" DllExport int ufusr_ask_unload()) q+ G2 w3 Y- T. W+ ?: ]
    {
( {( D0 u4 L* ^6 }* X- H$ o7 K9 T* v        //return (int)Session:ibraryUnloadOptionExplicitly;3 S/ M1 r0 A' z
        return (int)Session:ibraryUnloadOptionImmediately;
: {' j, o; [: ?: d2 m- _$ m5 ^& y        //return (int)Session:ibraryUnloadOptionAtTermination;3 c% u- c" Z, S% F. h: `
    }) p  W' w4 l9 i. y5 g% Y- ~
   
* n7 g! k: k, E1 |8 U* Z    //------------------------------------------------------------------------------
, W% V: x, c2 M- [) \    // This method is automatically called by NX.
3 n& z  j! W/ m    //------------------------------------------------------------------------------
. ^: F) n+ H  P. T    extern "C" DllExport void ufusr_cleanup(void)
" D+ `0 w2 L& X. c6 H* D    {1 f1 s% C6 S" l" z+ N
        try& ]% V1 l( B3 b8 W
        {, b  t" x* h: A4 T' E, K1 O
            //---- Enter your callback code here -----4 U5 b$ z: ~. x. \$ K  y# u! W7 e
        }1 F! x5 m" R; m) }8 @2 Q8 `
        catch(exception& ex)% B/ a" p8 w, H( R& c
        {
4 f2 P2 b5 v7 x/ W7 D3 B9 e            //---- Enter your exception handling code here -----
. R2 t, W' t* w* m# o% ^            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
  H' w) H% O- q# h* Y) I# s4 F        }' b; R, d0 Y, B* f
    }
2 ^5 ^- S3 d7 K8 I0 D#endif//USER_EXIT" ?5 H/ V3 Z3 G8 d
   
6 T- G. T7 q/ _; N6 y    int Shrinkage::Show()# c' O7 m3 U7 Z6 ?
    {
3 K# b0 l5 U0 s# ^) F0 j" G. v0 l        try8 s+ a- k  v7 U- L/ Z% Z- D( D
        {
% N$ P  c& y5 W/ U            theDialog->Show();
0 `& S9 I0 [* s) M/ A0 T$ N7 z        }8 i+ Y) \! ~1 x8 }- O
        catch(exception& ex)
* M" ~: A" z  N9 |; C' e        {& S5 q0 P" \" o8 k2 J) }; x  ^9 g1 T
            //---- Enter your exception handling code here -----/ y) f% l" u* Y
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
2 \" o8 y( s9 z1 c4 ?        }
7 A$ b& d7 i8 k- i" D" j, l# P7 B        return 0;/ ^, A4 M1 I; M4 [" Y
    }! S! C" r, s3 x6 `
   
$ e3 b& X9 Z: A8 I3 t#if CALLBACK5 n& w- Y  g6 J' m8 f7 U7 x+ a4 U( i

: y# U3 r2 Q  k) S( c8 {- Q    void Shrinkage::Show_Shrinkage(). q& O$ k: \+ F% p' T* [
    {
" b8 `: Q/ u2 y6 X        try/ A/ W0 h+ Q- F$ [, B3 v/ l
        {
+ b" N% x6 t) i$ x2 e6 v) R            theShrinkage = new Shrinkage();
' l0 m! U- N: r/ M8 P* @$ F
" \+ `( m( C% M- n0 B            theShrinkage->Show();
' V& W. _8 F7 Z        }
% V' O" b7 S+ Y# M! p        catch(exception& ex)
5 |% O$ e: r* M; A. ~        {
/ F& }; T# r3 T7 n/ M& z4 W: t' I; U/ W8 |
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());; j) _  d! b) W" U
        }+ d  C" S9 f2 z  l' R" K
        delete theShrinkage;
& T; ?: Z( W. a! X7 S7 A    }
" a% }2 ?( d5 J1 [1 Q! ~#endif//CALLBACK
- \; v  N, Y' d0 y   
6 `& s0 S2 \% G" n* i, y1 _    void Shrinkage::initialize_cb()
/ {" T% H* k  \6 e  e# q+ @  R    {9 _$ O/ O) H+ o2 T5 @8 ?9 i8 n
        try
7 {, G7 G4 t' N; G0 S$ w, }/ q        {
2 c. T) g' l5 B# A            group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));1 _& g( u* [6 f
            face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));' i( D% m5 E' Y2 R* H! q
            face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));
5 Z1 X6 w* F8 M/ Q: m- n            group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));
4 o4 n  W( V% q( [+ J7 l            bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));  _; G! u' P! X
            bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));. d5 P4 \+ u( f  }( X; l) n, h
            group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));
6 l, @, u* S+ b            string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));
$ s$ [: @5 {5 A) Y            label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));4 |( q0 y, J- q2 m& x' q$ R7 y' C3 w
            string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));) u2 f$ W+ _' v9 A9 `# l
            label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));
# i0 g) m0 D! I* [1 H% D8 q- X# N            label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));
- T5 V0 i, q3 T& i: t: n6 b        }
( u" U: M  u1 I3 R$ M$ n        catch(exception& ex)5 l4 G3 o9 B5 d. ~+ Q4 V
        {
- o4 W) D* k& e& O1 d7 m2 R           # e+ f9 X% C% u. _! _. W# @; w# o
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());) S9 s2 g( r9 }4 D
        }+ Q# h/ L' H0 t( M$ s* j0 m- E
    }
0 N* ]( U3 O. G' Z    //------------------------------------------------------------------------------
" [/ A& t+ w0 L* ~- J    void Shrinkage::dialogShown_cb()  h( D5 Y) G3 U* V+ ]
    {& `8 r$ w1 y- r" ~7 ^7 K, ]! A/ ~
        try
* y) p4 D* d0 S7 }" p0 N# O4 X        {/ \& {3 k& W; I! r
            //---- Enter your callback code here -----$ b: m1 n. `4 M5 u) C: l% `
        }' x4 W) _+ C4 v3 b6 M. l: P
        catch(exception& ex)9 ?. j+ P4 J* G, q
        {
/ z! h* f) T1 M: |2 `2 a( D6 d4 m1 _8 H3 T
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());" ^7 j  b4 t, j' g5 i9 w/ f
        }
. J' I* i1 j, l# X$ |) }7 c/ [    }
' N% S" M& B$ _. Y  p    & A+ d' ?! e$ V$ |6 u) X( B' R5 I
    int Shrinkage::apply_cb()
' |/ c7 t* t( D) w0 u8 G1 a0 I9 A    {
+ |2 E+ Z5 n- k4 w# N        int errorCode = 0;' r; g' b: D# y9 C! ?9 ?* H" y
        try- u: j; i% N4 C" z; @, ~) l6 b! G% G
        {
# [/ @2 o- r: G9 Z5 t! D+ v, ?            //---- Enter your callback code here -----
- \* v' g/ s- D        }
. h- Z8 I. r- Z$ W0 e        catch(exception& ex)) \% q! q: I! ^8 h4 q/ J) @9 E4 `% W
        {
1 N1 X- x, D2 m! O% t            //---- Enter your exception handling code here -----: ?* r6 g3 I0 ^4 l% ?! t
            errorCode = 1;
/ p8 U1 m+ I& o. V: i6 H% z            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());  K! B8 W: |$ V( K; i
        }
, V2 r- W7 A' m; V! J        return errorCode;% V& y+ z  E8 H7 ~5 d
    }7 D- K/ h% }- C7 y5 Y
/ C- Z, S) \. A/ K- m6 K
    int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block)
7 U$ I, I% ^+ r1 J, M    {
8 }+ w2 e. ]: ]& k4 a        try5 D8 f. p/ l! z4 V; m4 w" ^
        {; f1 c6 \) ]2 w; E, \3 Y
            if(block == face_select0)
/ r" u) D6 K" ^            {; _+ J+ ]( J5 @2 h" q
            //---------Enter your code here-----------
/ e" |% v1 H% u$ k1 m            }
  I8 q. {( L1 }4 {6 Q  L            else if(block == face_select01)
# ~- b4 [7 p1 y, m  I            {
1 s5 J% C* G: Y            //---------Enter your code here-----------6 D- H; m7 w8 U" R4 R& S0 u2 Q
            }
9 r) f$ l5 y% {! A2 C1 L, h" E            else if(block == bodySelect0)" Z* O5 T' j  H- W- x
            {  U  {2 H$ p4 ?1 g
            //---------Enter your code here-----------
, W' `3 t3 `' h$ w            }' T# z# T) i5 K- K! a4 I2 y( p
            else if(block == bodySelect01)7 k  ]0 m0 T1 Z; z/ ^
            {' z  x9 ^# {0 ?
            //---------Enter your code here-----------$ f8 w% @7 ~( W3 o) Z4 K3 w
            }+ r5 x2 ~8 u: B" m. a
            else if(block == string0)8 w$ {8 W# E7 m
            {( {4 ]+ M: [" x0 ~
            //---------Enter your code here-----------5 e1 `# C1 g, z  o- Q% f' Q: X
            }
! N8 e+ ?0 b: O8 _3 Q            else if(block == label0)
+ w1 T( s) u9 _) t1 m! k            {
9 k$ d3 |/ [( Y% v            //---------Enter your code here-----------6 J! p6 O, B8 D0 o/ j! G2 Q
            }1 U6 s' n& ~1 a* Y( Q, j) W
            else if(block == string01)& Z7 O5 t  t3 i" |+ x$ H8 ^0 |6 w
            {2 ]1 M; \3 p7 ?% x) ]$ V
            //---------Enter your code here-----------
; c6 S8 f  r$ M: N/ c            }
9 e: j+ L- _$ b" R  C9 h* K            else if(block == label01)) x$ T" h- O& V9 B, k. D2 w
            {. {& D% t- ?# z
            //---------Enter your code here-----------
) M% y- d$ F* c: S  R            }
6 e: G  ], N5 [, B* F, t            else if(block == label02), g2 Z4 O1 C  `1 D
            {; j$ X6 ]( V8 L- P  G( i) O
            //---------Enter your code here-----------
8 n: j5 f8 A/ h            }' g/ h0 i# V  t9 n1 u% u
        }
" b5 T( _) |- v, G5 f$ ?        catch(exception& ex)+ Y) B/ p; K/ F6 G4 e
        {
  P4 O6 C1 R* b1 j/ T            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
+ A' P  Q8 A! p$ p& K  k3 c        }3 t# ?7 w2 f0 H/ }; a3 u9 z3 F8 V; ]
        return 0;. P  r7 K" d  Y" h6 [
    }  k) B, ?1 F" B7 _/ w
   
- o5 J+ l7 h) s% h: {    int Shrinkage:k_cb()
5 E& A5 h; I5 C    {5 q6 A, ?3 R. C" y2 Z
        int errorCode = 0;5 E! U: M  K% q
        try. L; r1 O2 ^8 Z
        {
! G7 v( e" g: M8 Y7 f& U; J            errorCode = apply_cb();. n# x0 N/ P$ x7 t5 H2 C" \" X) X% A
        }) T2 O! G. I4 D
        catch(exception& ex)
2 _3 ~$ U1 p4 B- G        {4 r6 w4 X0 }  v$ k
            //---- Enter your exception handling code here -----
  q1 E( _" R0 }3 {+ G& ]            errorCode = 1;6 L/ U  [' {, G( B# E
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
# ]$ {/ Q/ W+ U6 Q  x0 G        }( B, ?6 F% Y6 X: T8 t0 ]4 q7 S
        return errorCode;
' K9 J3 a. r' I& S: |& ^5 A    }
% S4 z2 J2 D# {/ k    $ ^% f. ^* x" e5 j$ C( h5 }
    //------------------------------------------------------------------------------$ A% k# E  r( ?- T$ A, ?  D
    //Callback Name: filter_cb: y  P; h8 A5 }- q
    //------------------------------------------------------------------------------
- `1 o6 C( q$ Z    int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock*  block, NXOpen::TaggedObject* selectObject)# v6 V- k; V2 u$ y) [
    {
& t9 [; ~8 ~6 _. Q3 Q2 i4 c        return(UF_UI_SEL_ACCEPT);6 z: f( j0 M9 q4 O
    }' k0 e7 Q' C, ?2 E
   
2 O7 l. A4 b) W3 Y    //------------------------------------------------------------------------------- ~6 q$ [3 u9 R1 c" ~7 Z5 j
    void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)& D) Z5 T7 C& @) r, Q& g  b5 A
    {
- ~. i& z2 N9 {8 P        try+ n& |3 C. I, q* P, ^* _) y
        {
% r: O# s2 |! N- q* D. S            //---- Enter your callback code here -----: b2 L/ a( ]7 o1 A0 x
        }! v5 q$ K& z# H/ t
        catch(exception& ex), O- b; [% V  Y
        {
/ h% {# N7 a0 ~1 j; {0 f( w6 h            //---- Enter your exception handling code here -----
6 s9 k* N: G& ]# |            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
( R7 u+ o- ]5 F8 f! t7 P        }, U5 c  r8 F! ~# O- s: _. L# S# ~0 t% a
    }
; n0 ?1 Y$ v8 j: g   
6 `; H: w' @8 x8 s    //------------------------------------------------------------------------------5 Y; o. Z6 F- l. J
    void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
5 f6 }6 a3 p! m2 ^6 A7 w2 D- ]    {$ d  }0 r8 N4 \3 c; o
        try, n* ^( b/ \! h/ h: w/ n9 a
        {
  W* a4 O- _: E' f4 g$ s0 N            //---- Enter your callback code here -----0 S* B# \! k6 m& }& G
        }& k" \9 H% L9 I- w
        catch(exception& ex)5 Q+ a/ V& c# G
        {, ^5 |& P2 }% q5 {
* F# ?+ ]+ d9 u6 M* `) W; ^+ A
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
  \* A8 ?; ^2 o3 {        }2 [. X( x7 c: u& c: p9 s8 D
    }- F! a. ~$ U% \. V. H, ]

2 ~5 H, @" N3 |# p" j
& E9 E( P5 m" Y/ v2 j
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.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

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

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

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

    我知道了