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

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

[复制链接]

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

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

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

x
本帖最后由 lzhyi 于 2017-2-14 11:32 编辑
) E, ~. n# J. i3 p7 R5 D% q) q6 M! F
请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr
3 T8 Q. D. @. w& H5 r, y- V) X9 X代码如下:
6 J0 C% S7 }! X4 D' a#include "Shrinkage.hpp"
# a$ u3 Q7 B* I2 Nusing namespace NXOpen;% w/ Q4 s, U3 e, R7 ]
using namespace NXOpen::BlockStyler;6 y) O1 O( h& A; o

% P, v4 e. Q- x/ l7 \Session *(Shrinkage::theSession) = NULL;
1 C2 w3 k7 G+ R& L" wUI *(Shrinkage::theUI) = NULL;
  h" _# A0 u" ?7 J2 `
1 x3 Y: P1 b( y7 z# iShrinkage *theShrinkage;
8 m6 D3 w2 I4 S6 Q1 E9 B7 q* i9 R) y; S# [  y, H0 ?3 g
Shrinkage::Shrinkage()
' G7 X; ~5 t- G. j7 e- u{
3 n/ D& U# r4 S    try
/ J+ x/ v0 n" [2 B    {
1 X/ a! }. r. V' d: ~  m  D; A, r8 D        // Initialize the NX Open C++ API environment, M% w; M+ R5 N; K6 f# O& \
        Shrinkage::theSession = NXOpen::Session::GetSession();6 H5 H+ u* p3 ~& ?& n, W: [
        Shrinkage::theUI = UI::GetUI();% j) ]& z) P+ R  A8 A/ e4 \% [" q1 s
        theDialogName = "Shrinkage.dlx";# S* U- z$ V+ Z+ f; A, K# Q
        theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());
/ U  p$ P/ Q  B6 V        // Registration of callback functions3 V) `& P4 c( ?% k, u
        theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));+ S  S9 o  w" X( ]  O3 @; ]& K
        theDialog->AddOkHandler(make_callback(this, &Shrinkage:k_cb));% J2 f* V  Z4 P! D2 `4 b
        theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));
1 W. r6 D  G+ {" m; L8 \5 E- z        theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));
3 J; X6 f, |9 Z  i1 G        theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));
1 X! O4 B) p% I& N$ @        theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));/ b. w) q; e  N& X) k3 ^
        theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));
: f$ d  Y) T& v2 B  x0 f- v        theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));
6 k: d/ q) z; D1 B. F# d7 H    }; t1 w$ W* U) E" ]4 V6 n
    caTCh(exception& ex)
" r* o! e1 N! g9 D, Z8 Y6 M4 S0 e. `    {
2 a( z$ X; [! K. k- A   ! _: q$ J8 u7 u/ ]+ X  j
        throw;' f2 s/ a3 O2 M* v0 D
    }
( Z7 N% l, Q& X6 x4 T  }! j; [+ y}9 m' N9 L4 k! @! q: H

' Y. }8 E9 j7 o$ BShrinkage::~Shrinkage()
* X3 n2 K7 Q" R7 ?3 {{8 k% T' u; v( X2 F
    if (theDialog != NULL)0 U2 V8 W4 I0 |! d. @$ ^9 n' Z% L
    {
$ [: q+ H- t6 h' J$ Z; _# k! h        delete theDialog;5 A9 y2 P, n0 `, o8 ]
        theDialog = NULL;4 \; Q. t' r$ K* _
    }6 P- i2 \$ u3 }+ w4 l" P
}" w6 h5 n; v: K: v0 R
, t" C# V! T8 q/ t4 e
#if USER_EXIT_OR_MENU
8 G) \9 D" U; B) u/ M    extern "C" DllExport void  ufusr(char *param, int *retcod, int param_len)
; D2 s: h+ i- O9 V0 r9 [3 t0 S    {8 V) |# J. G5 {5 |% @) {& S
        try
+ y8 V4 h: ~7 ~        {( T; ~9 w1 j" I. ^! J1 k
            theShrinkage = new Shrinkage();7 }( L1 C3 x# \6 m+ [7 x
            // The following method shows the dialog immediately; ]1 t  }" y# Y- Q
            theShrinkage->Show();
- w7 z3 s+ V3 A% _2 h        }& G( G- m+ \( P  V, Q* K
        catch(exception& ex)
( T) M7 h. L8 x9 I& z/ [, y) Y& @        {1 U* Q% ~- n7 L3 n' m
            //---- Enter your exception handling code here -----
: C+ T2 s# `  i( F            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());9 u4 N2 i. `2 G9 \* G& B
        }% N. D, S6 H( w) T
        delete theShrinkage;
5 J9 W6 X4 X$ t) t, w  R4 Q6 n    }
# p* R% d' }3 ~! q0 \/ ]#endif//USER_EXIT_OR_MENU
8 T8 k+ d! D( ~; d#if USER_EXIT& u0 @1 N4 J' b: H3 o6 u
   
/ X4 n9 C6 K; _& g  ?. M    //------------------------------------------------------------------------------/ N$ s, v! L! L. c% E
   * I9 d4 b. X. T$ c& L, i
    // MUST NOT use this option since it will UNLOAD your NX Open application image
- B1 O( G0 p% U4 N' t    // from the menubar.' c. H; v0 S# T7 D* o
    //------------------------------------------------------------------------------
2 O( G1 H" v. g% `6 `7 ]    extern "C" DllExport int ufusr_ask_unload()' p9 W+ h3 ?( I) N! C
    {
1 o. O/ ]6 M3 I$ P% }        //return (int)Session:ibraryUnloadOptionExplicitly;
+ E' G4 |& l! F# p- Q( b& z- q8 w* v        return (int)Session:ibraryUnloadOptionImmediately;) |( M7 N7 x7 o4 z' Y1 k
        //return (int)Session:ibraryUnloadOptionAtTermination;
" `: h. U! d9 R5 C    }% q+ }% {# z3 O' J3 _  {
    4 X* G: d6 @9 Z' N+ B1 S' H
    //------------------------------------------------------------------------------" C" M$ K8 `2 Y, T
    // This method is automatically called by NX.1 t( C0 g4 g. E/ q1 }8 _: _8 N
    //------------------------------------------------------------------------------
" |# {6 F9 n3 y& ]: P    extern "C" DllExport void ufusr_cleanup(void)
1 K2 t1 `, M! S5 ~3 V    {4 Z2 D5 I0 Z0 k2 b1 I# I$ k/ o
        try+ N2 H9 @4 e) d4 M- ~6 P
        {
. s6 r. S" b8 @! \3 T; d5 k4 I5 N            //---- Enter your callback code here -----" U' v' u0 _2 K! R( \. m$ j1 D
        }
) `  v# I  ]3 t+ ^# A" }        catch(exception& ex)
0 G  I' }* P! t4 r  `2 c. p8 d        {2 Y; c/ F' {! N
            //---- Enter your exception handling code here ------ k) f( ?9 p: ]2 P
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
/ Z+ v  }& }7 ]# R- q        }
& [& _- a: Y$ H1 h  e: e    }
0 \$ U, i  z" k% H7 w% w#endif//USER_EXIT0 G4 e4 n' ~: k1 v. `
   
. [4 Z1 m" M8 G& i" w4 Y' |    int Shrinkage::Show()
/ f* X* Z. K$ k! u5 f    {- [. ^1 Q3 Z8 Y- G  q) k' k
        try8 n1 C- v+ u8 b
        {
4 r% p* F+ |. z+ F' b            theDialog->Show();
$ R" a2 u( y' Z, h: t- Q' ?        }
6 F( f& a, G9 W5 h        catch(exception& ex): W% X* {/ M, [- x6 r) \
        {0 T1 Y0 s- U' ^# f6 ^# `
            //---- Enter your exception handling code here -----$ H: p' |+ i# q$ F( _, i1 H1 i$ h
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());  J4 H/ a( r' O6 J& T5 B
        }
' E0 H5 `% e, q0 v        return 0;
) M, M3 [: _1 \. Y4 f    }# l% S' Q$ q3 L# O* j
    $ n& r% y$ \3 K! C& n, A
#if CALLBACK
3 u3 S4 u# @/ y* w( R- J- w# v- q/ N- F1 E0 X
    void Shrinkage::Show_Shrinkage()$ d. K# d  [; p
    {
$ F3 s0 J  U  H* ]7 f7 c( z. \        try* H' Y' U8 K3 d) R# K2 v
        {
* ^# c/ ?3 f2 U$ M            theShrinkage = new Shrinkage();
  f  X! M% ?1 F5 Z4 N! s! L! C6 Y" q2 x# f4 b! `/ |$ I
            theShrinkage->Show();# B) ?4 O/ @. n9 q
        }
! Q6 E, E( c+ o  P! y: k        catch(exception& ex)( f# ]8 |3 d5 s- r
        {( k5 B% X/ ]$ q) ]( i% B$ U  t
% H; d* x8 n7 y2 v
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
2 {% {* {, c1 ]  N7 D. j, _* n- i        }+ {9 o/ g! i* l4 ?" u1 d
        delete theShrinkage;' K! x# R: x  ^% ?
    }  g$ Z8 J; w( \* B$ H& u
#endif//CALLBACK  P1 U! L: t4 ?
   
3 G: `5 j3 d# ?/ r2 z    void Shrinkage::initialize_cb()
& J! E% G2 Y0 o' {5 h    {/ F, Z% C5 U2 @4 _5 p& G" P
        try
2 b& O3 ^  ~& k# Z! C+ ]) ^4 i        {, N* v7 E2 t1 I# R
            group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));
9 ~" K- v+ A/ |: g3 ?            face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));' C( {& }; D! ^: {5 y! |, b
            face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));
- N" J' p) S5 U4 q1 h3 ]* q- I            group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));2 S$ o# b$ A" q8 s, T: K
            bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));
# N$ C( Y4 `+ }9 y$ p            bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));
- T) t/ x7 [4 R0 t! n% q            group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));$ _' }4 T# a* }! }+ I- w
            string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));" A5 k0 ~" z: h4 _. v
            label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));
1 |; X5 p$ q, [' \            string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));; l9 P/ H8 {# ~9 G% X, A* h* K
            label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));
/ ]/ P/ r* ^2 p; D0 A            label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));
9 R' E3 c( `+ i7 P. K$ Y        }
0 I4 q. l* i9 i        catch(exception& ex)  J- ~. Q' I% b4 o( ?! E: m" e
        {) w; E: D" P6 f% H7 o
           
- Y$ x% S# }! O" ^# u, t            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
& P( B( X" }  V( [; j* v4 F        }# ~* H7 s9 d1 I( ?# _2 T
    }9 S. I- h7 u' r9 x
    //------------------------------------------------------------------------------
, B9 H! z- e3 R/ _( A! z1 W    void Shrinkage::dialogShown_cb(); a7 [- O! q$ F8 `( i: N+ r
    {
1 m* M  j( ]5 D3 C1 Q. h, V        try& {' p% ?) ~& X% n3 a; \5 g0 W
        {
/ F3 u4 A9 i# w9 c: @: H) K6 ^            //---- Enter your callback code here -----) j4 I! b& N6 `$ B! ^
        }$ z9 y9 X$ L0 }; F. @6 ~: u# c3 p; C
        catch(exception& ex)6 P5 {3 N' d7 f& ~4 `( s- T
        {0 T0 ?7 V5 M, K4 x3 C
6 L4 n# b& t" ~% h" Q; w8 Z# _
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());4 g: ~; e) B- n  g- N- W1 G
        }
/ a: B) n; k6 J! T7 c) R    }0 B, X, N4 k) Y5 ~2 E" ^8 h. l8 e
   
# C, {6 j' p# S  e- m$ n6 ^    int Shrinkage::apply_cb(). z5 f+ q2 e9 R6 w# B) C& _' f$ K
    {
# }1 H; r/ j; V        int errorCode = 0;! e( B+ _* R" m% }. i* [( R- T9 U/ z
        try
% w9 g- e4 y9 I, K2 Z- g# F        {
, j  ?# L- B! Y$ [            //---- Enter your callback code here -----
, V. \- z3 A  F) X        }* E6 I7 F+ f' o$ G
        catch(exception& ex)
  G' S6 F# P- u0 B        {
8 p8 W6 k' x  J- ?' l            //---- Enter your exception handling code here -----; S% Z8 Z9 ]5 C$ `$ y6 A
            errorCode = 1;
: z; A5 f' p/ \" h: _6 X. B            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());2 g/ l7 ^# b- [4 l, T& b" y
        }
, v% i; [. O+ h        return errorCode;
& x4 ^! o8 b% o3 T    }/ o! K/ G1 e0 I1 G3 D
$ j) m( w: J; o$ K3 b
    int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block)1 M. Q5 F  L) {) ^
    {
& `7 A3 i: n/ w3 X. h( `        try/ e$ S0 X" N& k2 x0 i. S
        {
; {5 q( W5 }4 \" h6 `0 }            if(block == face_select0)
( h' @% a. u- e$ Z  d            {
/ }5 b; H# t' Y0 ^            //---------Enter your code here-----------' l/ N. J6 s7 A) k* ?" @# i
            }. y* t6 F3 \: u/ F( }! d
            else if(block == face_select01)
& Y5 X$ `. L2 n            {. @/ U$ l. y8 R( ^1 k# k- h( `
            //---------Enter your code here-----------
4 A  N2 Q, z) [& S1 @            }4 g. C$ K8 H* w: y) E
            else if(block == bodySelect0)
1 q7 [& `7 V) d, k: b  S! y            {
# L+ ^6 F6 `8 X& H; J' }) c1 h            //---------Enter your code here-----------$ T+ w) A( Z/ C& @# d
            }+ i. r9 S4 U! n5 Z( ^
            else if(block == bodySelect01)9 q" L$ S" @+ W# Q3 F" G& R* G9 q) o
            {$ s# }6 j! m5 k& N) r( V
            //---------Enter your code here-----------
! G: b: A# n2 a+ t9 K) T' ^            }6 i$ {" @% f$ B8 L5 s
            else if(block == string0)# t8 P, o1 R6 c, Y
            {5 R( u2 n" [% h4 j2 n" \
            //---------Enter your code here-----------
1 ]2 b* ^# I/ V7 Y6 N/ U' M3 f$ ]            }; v4 K: e) C  r! ]
            else if(block == label0)
( v' g- w& n; {            {
0 N+ j, W  ^. V6 b4 f0 B& Z            //---------Enter your code here-----------
6 a; C% j& W' H            }, _7 _& ~  @7 ~, G
            else if(block == string01)
, X: e2 w- t, r% b$ K' T            {6 u+ `6 _- \# x: ]" V
            //---------Enter your code here-----------: O: r8 v+ F( \7 S2 U/ c" }
            }
4 p8 \, ~5 P! a: m" d            else if(block == label01)9 R5 _' {/ p3 X* ?7 I, v
            {
3 _/ A9 U# B8 y. ^: w: c- Y            //---------Enter your code here-----------& \, C) s) N3 \, p: C
            }
; b  Y' o0 C# k. F- J" f            else if(block == label02)- h. Y) ?. Y! b
            {# J# H; R2 `) E" H, D
            //---------Enter your code here-----------
$ X/ K/ k: e  Y( f( r; ?  H            }) N2 v$ u8 V1 l4 v& e# x# R" Z
        }, F& Y6 t) u1 S2 W# R( O3 U& t# |
        catch(exception& ex)3 p' a& ^" y6 n; J; ^
        {' d, U  q0 V1 X# f$ [
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
6 U* o1 P: p* R8 P( `+ F% B        }
4 ?: f) ?. B# E) |& }" h* {        return 0;' z# Q2 |9 O4 B6 w, j
    }
9 m: j$ }, W, d+ h8 j0 M7 a9 L8 d& a   
4 J9 [8 U/ U( `8 U! l# @    int Shrinkage:k_cb()& b- v6 }" i; a+ Z7 P6 I9 I
    {
* ^: H/ h, X  R1 q, a4 r4 k8 P0 O        int errorCode = 0;, M# Z4 R, R$ l" J9 Q) w, |
        try
3 x3 k6 G( H  z, y* B        {3 B4 s9 {/ C$ O+ ?5 [, H+ K9 O
            errorCode = apply_cb();- c% M% \2 t, G) J
        }2 c( ?4 x6 x8 R, e+ f2 \# H) S
        catch(exception& ex)
& a& K: |# ~! ^4 d/ g1 D2 Y        {
# F( ^$ W" A2 ?& X            //---- Enter your exception handling code here -----1 L" {. s- Y; p2 D9 H6 \3 q0 r) t+ }
            errorCode = 1;+ o6 J/ z( a4 h* m, s+ g
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
/ i. ?. a' `8 u- I+ k! c        }7 r: Y5 ~1 K2 T, ]5 }
        return errorCode;
6 r: O3 y6 g( s( ~. L0 {    }& T) A1 C3 L3 v- y
   
5 x( t6 _" ]% O    //------------------------------------------------------------------------------0 ]- o1 t; H% }% o
    //Callback Name: filter_cb
( s8 @! L! M+ J    //------------------------------------------------------------------------------
' Y- N1 t  I) i5 C; I) i    int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock*  block, NXOpen::TaggedObject* selectObject)
; ?2 V' m4 j- s    {
2 V+ d% F; F% \! D        return(UF_UI_SEL_ACCEPT);3 a0 z+ q4 ^* h+ q  m. h# g1 I* N
    }; J9 |2 @/ b8 y* K6 A8 A
    - u/ g& L1 d0 J9 Q" a& a$ S
    //------------------------------------------------------------------------------3 \  K0 w  ^% d1 s- X2 I
    void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
( H7 g: U- L0 e8 q+ G- S    {
) c! i, I9 x" E: c- I        try1 x9 {  ^& K9 q3 K  D" B# w
        {5 O  Z% p/ X) E7 {0 u8 s& X' N- k
            //---- Enter your callback code here -----
8 C4 l& I" g$ h$ F8 H" f: U3 M4 F        }9 L" ^9 F# Z2 J9 d  \1 U5 j
        catch(exception& ex)+ W) L, E  a; G! l9 \0 U$ k. y
        {) Y) w; u6 U0 X  p9 K) h5 I2 `
            //---- Enter your exception handling code here -----
# e* O: ]4 `9 c7 q1 X            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
# B, Z% ^1 X0 Y+ c+ s+ n        }
" u0 B3 @  Q* i5 v$ G3 m( s    }& t7 @# @/ ~4 A$ i0 }
    ; P) [5 z$ ^: r! G9 h5 }7 q. |
    //------------------------------------------------------------------------------
0 W7 h; ]2 I2 F    void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)) {1 o. R& _8 M* w, y
    {6 m  O) y9 E# t5 Z7 c0 E
        try: m* H8 R4 {* W# h5 `4 p
        {5 f7 B% y- ?* g% m0 l4 P
            //---- Enter your callback code here -----. g$ P8 N0 K: ^4 K5 f, b+ c/ y5 A
        }
& t, u/ y. ?3 s3 f        catch(exception& ex)
. _0 l+ {2 Q& `5 `- m3 e: Y/ W        {; t4 g* D. P- j( V4 c' S

) _# a) x0 m' N- t  j$ z            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
# k2 D, e# ^8 g. R        }
4 J1 y7 |1 J" o9 \- q    }( L% `9 y* m* `1 ]( D
, h) C- w& c& Q! ^$ G& X" u
5 j1 r) z) n6 E( _  N$ Y  I- @% q5 @+ q
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二次开发专题模块培训报名开始啦

    我知道了