查看: 6879|回复: 0

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

[复制链接]

2

主题

21

回帖

485

积分

PLM之家NX VIP

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

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

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

×
本帖最后由 lzhyi 于 2017-2-14 11:32 编辑
$ f4 K2 [( S9 b& Z! C" J
1 f! O2 A, {7 P; o请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr
3 N3 p) Y) N) ?代码如下:
! [* L- ]1 R- K; |8 w2 G#include "Shrinkage.hpp"
9 }( s8 L+ W/ i$ g8 e4 Iusing namespace NXOpen;
8 N$ u% A* _- D: Z4 H$ H) I6 j/ Rusing namespace NXOpen::BlockStyler;
) `- H- I! s& R8 a
1 ?1 T( q  ~# X! jSession *(Shrinkage::theSession) = NULL;* d5 d4 \* r) d/ P" H3 J3 R
UI *(Shrinkage::theUI) = NULL;8 w$ b8 n; {6 v# A- j% q& {2 v$ `
) [* M8 I" \0 K/ R9 ?: ~
Shrinkage *theShrinkage;
, l9 J2 N. r& n6 g. r
, l+ Q. I0 ^: v* l+ A3 G2 A% \Shrinkage::Shrinkage()$ U/ I8 {7 D7 J2 r- |( n9 R, ]
{
# q4 t# A& N' o2 F    try
; U& C; s; u- V5 ~8 W    {
. z1 P& d& [! B3 u1 j" w        // Initialize the NX Open C++ API environment
* u+ t3 E; c  J& e" K/ [        Shrinkage::theSession = NXOpen::Session::GetSession();* ^1 s5 ~- x4 t# W) D0 v1 T
        Shrinkage::theUI = UI::GetUI();
9 ~* f6 H: O4 J/ d. v        theDialogName = "Shrinkage.dlx";% Z  o. K  m, O# p" N6 Z
        theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());
2 n' E; g  r( }) {. Q  U5 Y        // Registration of callback functions
7 Z4 w3 s- h" }" i- i" T        theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));4 ]6 Y) L7 N# R8 T6 [
        theDialog->AddOkHandler(make_callback(this, &Shrinkage:k_cb));; k1 h, b  F2 g5 W' v1 f+ F
        theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));
% Q: R8 c, ]- m3 s0 J- Q  ^: d        theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));
1 O/ h7 f* g9 `  P2 O* A2 e6 z3 F9 V1 N        theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));
: B$ z9 i7 u* o( n0 k; b        theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));. G) M# O: t: v9 j3 A6 M
        theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));: P7 p( ]& L( C9 Z& P; _+ N
        theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));
' l9 U5 f5 D3 o. U2 z    }+ b8 q2 I9 K" D  A  H
    caTCh(exception& ex). B1 k( D3 V( _4 u0 e4 U" Z' T
    {+ [. {/ K) k7 Q5 G, D
   + v% m; Y* U) @: k
        throw;
: d5 o( {$ V- J" `; b& E& |    }
1 n0 [' X% L  j$ J}
' h6 m. j3 |& |  h5 ]0 r
# o0 L* }. M( ^, O5 g9 t- v9 tShrinkage::~Shrinkage()
- ^" t0 y4 }5 i: I! N/ c& x{( \7 ^0 X$ |+ g
    if (theDialog != NULL)
$ L  a, f+ M6 V' [# ?1 c    {4 }. V; H+ x; v- e
        delete theDialog;
  d! e& }* ~6 o- I! H! E* R        theDialog = NULL;
8 b* r  s( s# x) h! {) V    }3 J+ k) W5 U6 ?1 S. r# _6 S
}
+ w& E5 v. z( ]9 o8 C! S+ V# @/ p; t* A- }* f6 _, W: O
#if USER_EXIT_OR_MENU: B/ \  V9 |* _6 @1 M
    extern "C" DllExport void  ufusr(char *param, int *retcod, int param_len)8 I4 y! d, M6 J: M6 R) @* @- L
    {
/ r+ T- ~# o& s, p. N        try
  _9 T9 z5 i+ \; ?: U        {
8 m& J$ a8 U! S& \; U            theShrinkage = new Shrinkage();
) {, U. K! D: X            // The following method shows the dialog immediately4 B& o7 S  M1 |% I
            theShrinkage->Show();
$ H; ~2 S/ C6 b) @$ U2 |7 {        }" _7 m. u+ Y1 H" Y$ j
        catch(exception& ex)
8 F+ ^$ s/ U* ^' Z4 V' P4 F        {  g, `" Q1 a- u7 j, p% O% h
            //---- Enter your exception handling code here -----
. w/ k2 e# E7 s' K+ Z; p            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());) J* s& K8 A% r
        }
7 G9 r1 i! }+ E6 L. {# h        delete theShrinkage;' H+ ^# n( H, @% R( `8 @7 r
    }
- v, s# I" k; a9 W9 |0 t! x#endif//USER_EXIT_OR_MENU* T  C! c  \3 P
#if USER_EXIT9 E3 q: t. ]3 Y" }& L0 Y
   
$ T% e* u6 M# |* k; Q- V. U+ `    //------------------------------------------------------------------------------6 D% c& o, w  U
   
  Z# W$ v3 }, v) {' E    // MUST NOT use this option since it will UNLOAD your NX Open application image! R$ W+ C) f' h# Z# i4 ~+ T. U4 Z( D2 r6 e
    // from the menubar.
, K: v0 R5 \9 m3 p- d3 Y" N0 Q) ]    //------------------------------------------------------------------------------
7 H  r, k7 j/ U3 Q; W    extern "C" DllExport int ufusr_ask_unload(): E1 e" _( ~8 s4 K! o
    {
% p1 k9 b1 [' v/ O. I. J        //return (int)Session:ibraryUnloadOptionExplicitly;
  w! S. @' L3 l9 p( w1 g# ^        return (int)Session:ibraryUnloadOptionImmediately;
( \3 r+ I  A+ B) b  C        //return (int)Session:ibraryUnloadOptionAtTermination;+ b+ H) b3 \" Q
    }
" C0 S0 @4 B! H9 [    5 K/ R% _. @8 y: G1 {. ?" d
    //------------------------------------------------------------------------------( |. E4 j# y# r/ M2 _  n# l
    // This method is automatically called by NX.
4 `/ {8 b2 }9 h! r    //------------------------------------------------------------------------------6 G* h; X4 T* h  F! X# v
    extern "C" DllExport void ufusr_cleanup(void). P, O- A  x4 E! y
    {; v" y8 O6 G7 m! Q! E* g5 p/ P
        try
7 P6 U+ T; ~' t7 ?1 S& n( u! D" C        {
. n2 ]" r0 j3 B2 r            //---- Enter your callback code here -----
" p! m. q: J$ z6 t, K        }( }/ L( d; G' [$ O* H
        catch(exception& ex)
. l) i( L2 n2 A        {  I1 o/ D) ]9 A
            //---- Enter your exception handling code here -----
# _/ r6 D1 L$ b5 j6 l            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());8 l8 t% @( y% `' \) F5 P+ y
        }. H7 ^* Z0 `0 b: c6 _1 l
    }/ f" F1 |2 o5 j9 v# ^( e7 m8 i
#endif//USER_EXIT: w/ k  ?, v/ c6 _, S- W
    / {, m- n* M* g4 P( }: S2 G
    int Shrinkage::Show()! @; Y2 H7 Z( _7 @7 M4 |+ v
    {
: Z. F2 P/ m6 M( T% z: \        try, \! ~4 \+ T# F. C- N
        {9 j: D( T- x/ P. g
            theDialog->Show();, J& W9 T9 E. U' g" P) @
        }% g8 p& l3 g" M* ]8 M
        catch(exception& ex)& Q0 f1 }4 Z% r2 d" ^$ K3 \, V2 ]6 L
        {
8 c# S% G  V9 A# ?: y$ E' K            //---- Enter your exception handling code here -----
! T" P3 q- q, Y            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
  V" y0 @, b; b5 K) K        }; @) ^$ Z1 }9 N, {' O' q3 _9 u, B
        return 0;
; B8 \4 K* ~4 s: d* i, y  o' }) S    }1 }' }! \3 Z: G5 x  I
    5 e$ L& a  U9 p/ i  D7 \+ m5 Q$ ^
#if CALLBACK
4 F  E$ D. n9 C6 ?+ @/ C& s" B1 _  g  q, x6 h
    void Shrinkage::Show_Shrinkage()
% a) m) M; s4 S+ U    {% V8 I- Z# a! L1 \
        try
1 q- v+ H* i! Q( m+ U. v        {' @) T6 f8 l  }8 h8 }1 [% J* F% N/ r
            theShrinkage = new Shrinkage();* E6 b3 y  E5 N% e) r: K/ x# j
2 [/ G3 m) x1 {: E" ^' Z
            theShrinkage->Show();
7 n$ R0 W2 n8 I) ^$ j        }! v6 |4 f) C# p& B- C
        catch(exception& ex)1 r+ ^/ V% ?( q" c
        {3 g9 q: ^2 x2 N  b
& W% y, [3 V0 c- W
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());/ U+ _- W: q7 f+ @& c6 z
        }& p9 P' v" d+ u
        delete theShrinkage;# h- p5 \2 O+ d5 ~: g$ {
    }( S4 [8 N6 B5 s6 Z* E' \. u. |
#endif//CALLBACK
0 S7 \. f: z( V: _0 ?( k5 K* n    ' a5 }& \3 i& U% N+ L& ~* b
    void Shrinkage::initialize_cb()
# ^- {2 C. ?8 C; T: C' Y    {
% ^: j% C; \) Y& m$ }, z9 `        try3 Y$ _4 @3 U3 {/ |
        {' B4 `) ]- A1 y. V1 a9 M; U: y, @
            group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));
, D2 z8 ^* l  d- ]            face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));7 _1 B' J4 o3 j8 \
            face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));" Y: V+ x8 t! L/ T9 Y* k
            group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));$ v- I; K' Z+ E
            bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));
9 t! @9 o9 g/ b. V/ V: m            bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));# D4 v& e# O( U' W
            group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));
& }+ c4 j# n' x/ C            string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));+ }1 z! i" w1 _0 {6 ^% l# s% s
            label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));
* S) |' p. I% K% F' i            string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));0 z2 p, b' U2 J+ y, n' B' H6 Q
            label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));
* f) L; m) c0 f; l% f9 Z            label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));
" @! H1 p- j/ W+ [; X        }. v9 W1 B+ O1 G9 y% r, e. v1 f0 s
        catch(exception& ex)5 S- v5 ~( K+ q; p8 k
        {
0 V) ^9 ~8 J7 J. P" @, |' X: G5 y           
' s# c. ~6 v+ P% ~            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());! x/ Y& R$ B* M
        }
/ K" W: O) \3 x5 T( b; F    }2 A! c3 D7 k1 u) V
    //------------------------------------------------------------------------------' H, }- x  A1 _! Y( r" T* `4 }7 s
    void Shrinkage::dialogShown_cb()
9 _+ G5 Z. D- @3 _8 ]    {
* M1 n3 O  I5 y        try$ R) V' F: w0 s8 r2 e
        {3 Q1 R$ d  c! [% f- B# N: r: M
            //---- Enter your callback code here -----
& m: D: w. Z3 a0 O/ M- X- h        }
3 ~- m( f1 ^! I+ r        catch(exception& ex)
5 b: e( }; g) \. ?- D4 E5 t0 F        {
4 e+ z# I( M2 q; {8 w) D; m/ F. z% l$ K
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
) B* H" \/ J( b4 Z1 u        }: L' }; s$ \8 K6 |2 B+ |
    }
: w/ [# G6 U( Y* c8 O: U* z    7 `. }/ J5 L! N7 l& d. J
    int Shrinkage::apply_cb()3 }6 r7 W  \5 M- f2 s7 ~+ N5 _& u
    {
! w0 Z6 i$ ]9 E5 o! x        int errorCode = 0;
: M4 k1 Q& R& @5 q/ l3 G        try5 {* ?/ y% g, |4 w3 p- P  Q
        {
4 C7 [- l3 g6 \9 O; ?5 h* k, p            //---- Enter your callback code here -----
  h5 V7 w6 K+ N& S        }
- j) p" m1 }9 y: l7 u4 u  H        catch(exception& ex)6 j. N% Z1 v. [% b+ }' I2 y1 F) M
        {
2 R  ~& e+ U, Q. U4 h9 T& M6 e            //---- Enter your exception handling code here -----
! ~) s- f/ I5 V; i# h# [5 J            errorCode = 1;  M3 L+ B- R6 I8 d9 y
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());0 H6 W  ]0 l! ]# u& e6 |9 o1 I
        }
- ^: B. K# `; n6 l" x' a6 v        return errorCode;
2 ]* R& M- i- t- F3 M    }; N- R0 I' `$ y1 y! K' n

- x8 n# F/ H" E. E3 Q6 V: t    int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block)% A9 O  K% [# V5 Y
    {3 _1 J  j5 q$ J; e6 X0 K* l# b
        try
! h/ H3 G9 w: I- I: w        {
. }4 q0 B- ?- f0 b6 b" [            if(block == face_select0)
9 E4 h) W( @( d$ @6 S            {
. o( G) o- Z4 d            //---------Enter your code here-----------3 N  ^& C! L& }+ v0 h
            }
$ f5 Q% J7 ?9 o& y3 V            else if(block == face_select01), y8 Z: |5 n- y; s
            {
- R  f; F% o5 @            //---------Enter your code here-----------
( L7 C( P, C/ ?            }
+ l6 _- i; D: h0 b# H            else if(block == bodySelect0)
' I" d) Q3 B6 {" G; t' t! p            {
. D1 y/ c2 Q4 N            //---------Enter your code here-----------7 F5 |: E" j, I0 N+ f/ a
            }$ @* U* A4 ~" f
            else if(block == bodySelect01)+ \8 v- h: y- C$ z5 g9 b" S; }
            {
% I% i$ Q3 }8 `' ^+ Q! H# X) H            //---------Enter your code here-----------
0 b( k( V, |5 b, H& V1 h& X            }
* S) r6 A  L/ M            else if(block == string0)9 \( V, Z% v1 q$ }& K* o
            {+ ?! \4 G( z0 O- F' e  i+ J
            //---------Enter your code here-----------8 m4 |6 N. K/ x* K
            }
( f8 Q) Z! j# P4 q% A- E            else if(block == label0)% o6 M: @/ p" I8 i4 @. G
            {2 }; |+ |0 y1 i$ [  x
            //---------Enter your code here-----------  P- Z- Q+ v/ Q/ Y9 V: x- n
            }  J' G1 a6 a! N0 N
            else if(block == string01)
0 z9 g$ \* g. h            {
2 Y" E' e& d% |1 b- f4 t            //---------Enter your code here-----------$ l5 Z" r" H9 a5 M5 `, d
            }; I6 S. {* g/ v% S7 O
            else if(block == label01)1 U8 r% ~1 v3 X; v. w' M
            {' p* ^. N/ L- _, ]9 ]  P8 A9 u& f
            //---------Enter your code here-----------
1 y% r& w* C) U5 j" w            }
8 B1 h% y* B; O+ \            else if(block == label02); V% u8 z9 q2 l% z3 ~3 A" j, e' `
            {
+ e5 Y' ]1 i5 y            //---------Enter your code here-----------
' R0 t1 O4 }, ?$ N            }
6 L  E' X. l* w( a" C        }; f! X5 g" S' _4 Q  ?7 u
        catch(exception& ex)
  M+ W% G& }' [4 d' C        {
! ], m7 \# s+ q( w- P4 b& V            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
3 k3 }# B5 B9 {! n2 p        }
: {' E  }) r& A0 B1 V3 p0 i) Y( ^        return 0;
2 V9 y. Q7 @. I) _0 I' ?7 x    }
2 ]4 q$ G) w! ]   
/ b4 |& ^. H3 P# I    int Shrinkage:k_cb()( x! t9 e5 j$ S3 b2 _- a
    {
/ l% I! ?; `% n' }9 e4 k3 S- b        int errorCode = 0;
$ N* h. U+ Z/ ]        try
- [  M6 r. b& g$ D: a        {" ~5 n3 _3 k8 Q0 d9 Q& d  S
            errorCode = apply_cb();
5 }' V7 S& V: [$ P; I        }
' U9 g$ }0 D- A7 J/ L        catch(exception& ex)- X$ w" J. X, y. {& j7 n2 ^
        {
! l* t8 G9 |; ]  ~+ ~2 ^            //---- Enter your exception handling code here -----4 p) S# e8 Y+ T! Z) X  W
            errorCode = 1;
( k- T+ Z2 I. G6 X0 G            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
( I4 F- R6 X3 B        }
, p( W4 e) [& B6 V+ \5 l        return errorCode;6 A) ~( P, H( S  m: _" z5 S
    }
: U. Z& N! W4 c5 _( i& q   
/ _! [+ n$ b2 o: H. F    //------------------------------------------------------------------------------" q# z/ G. `8 S  S+ W8 m
    //Callback Name: filter_cb
$ ~9 t0 H( p, v5 w% h+ F1 E    //------------------------------------------------------------------------------
0 v+ p" r/ {# p    int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock*  block, NXOpen::TaggedObject* selectObject)7 j" ~1 ?1 Z8 M! T: J4 ]/ O; V
    {
* k% j6 q1 |% ?- X7 r# A0 y. v        return(UF_UI_SEL_ACCEPT);- E- d" d# x5 y2 t: {% p6 I1 f9 P
    }
9 k; K2 R) S0 M: r5 J: V   
" Y8 L. Q+ |# @" c- G/ w. P    //------------------------------------------------------------------------------0 g4 F1 ^% u8 B7 k
    void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus). A6 G; q. w7 J1 B$ C
    {
* q1 c8 g. ^) P3 I. H+ ?. a        try
( Y! |6 m0 }5 e: v# Y2 A        {
% A% z' I1 Y( a: V" T7 W2 ~            //---- Enter your callback code here -----
8 P/ c! j6 X4 M9 L# d" |4 ^: D  D        }3 P+ ~( P/ k# ^0 ]- B  C5 g
        catch(exception& ex)# e% r: T; X, M9 z1 D
        {
( u0 w  v0 b8 |            //---- Enter your exception handling code here -----
$ [' n6 x" g  t; @            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());# e& ~# a0 @4 \6 G! Z
        }, W' a3 m: s6 N0 }4 D
    }
% D5 {% I4 g# k% [, |% N/ z   
* X* B2 ?& q- H2 a' J8 s  A    //------------------------------------------------------------------------------  z9 g5 Z+ F% V, n4 |
    void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
, _& c- T2 F% L0 F2 W, W    {
& y" q: I& F! u" p( o* q$ L* k        try: X, `; s& f+ @1 q, Z! y
        {/ R$ q, S2 ]) m, M$ c& G
            //---- Enter your callback code here -----
5 U  [- z; Q4 _. O8 K7 q        }
& E: Y' |1 G' V4 C; J        catch(exception& ex)
5 P" Y3 U2 h, p# a6 R        {
1 ?( b7 A. S. Y+ \4 p' ^; f2 d/ [+ V& t
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());' @' M- v$ Q% r- @% C/ z
        }' w( i; Z* W. _9 h7 n3 s4 B
    }
7 ~. @" ^' y8 ?9 W- z  w; W) V& u* l3 Y- v
! {* L5 z5 O( L6 I3 X4 w
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
回复

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部