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

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

[复制链接]

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

2

主题

21

回帖

485

积分

PLM之家NX VIP

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

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

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

x
本帖最后由 lzhyi 于 2017-2-14 11:32 编辑
2 k6 H/ D& y- j. b/ K4 W/ \4 g; s
请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr
+ R# S1 v& a( d2 M. {* l代码如下:4 F6 @- G5 U* z5 F3 u1 A
#include "Shrinkage.hpp"
7 K: t9 a5 K% T: @2 I2 ]' Busing namespace NXOpen;7 j- j  z5 a2 ~( Q9 P4 e# `+ `8 c6 E
using namespace NXOpen::BlockStyler;
; H% K$ `  n' r9 F" R2 s5 x
+ v6 U# [, j( K+ W0 G, f9 OSession *(Shrinkage::theSession) = NULL;
% t+ e% l7 D# N( M! L% X3 kUI *(Shrinkage::theUI) = NULL;5 f% g9 R. l) p% Y  ~& y' I* m

9 H/ K  o" K3 ~; YShrinkage *theShrinkage;
' L2 _" e) Z. x6 |3 J1 a* m# [" ]. Y1 f: u, V. Q
Shrinkage::Shrinkage(), C0 V1 I6 C4 w, ~( I" C. Y
{$ O, s- K) l0 x3 J
    try* x% c, w3 a0 e" D
    {: k8 j0 W% p+ z+ X  N2 Q
        // Initialize the NX Open C++ API environment
) I  ~) t5 u1 e        Shrinkage::theSession = NXOpen::Session::GetSession();
" l+ @% p9 _- ^  `* j        Shrinkage::theUI = UI::GetUI();$ ?, C3 [9 }% x
        theDialogName = "Shrinkage.dlx";& m1 s0 Q0 {8 I) H* Y' e
        theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());" I& T1 ~3 G: E3 M7 r3 [+ G
        // Registration of callback functions- q" P6 F% I3 W) ~
        theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));7 @+ e' }8 f  e
        theDialog->AddOkHandler(make_callback(this, &Shrinkage:k_cb));1 S3 f; H/ x) ^. G" U8 ~
        theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));. q5 R# w. m7 K9 N" V3 r! c
        theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));2 g8 V* P4 Z" w; U3 {. Z
        theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));* p4 P  Y! J' _! G+ g4 \& j
        theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));# l# f; L( ]- F, d( R
        theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));% Y$ u3 j6 l8 t8 z* p6 @
        theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));
, l' ~% R( [, |- M    }. A; `' b" a& _6 s( C) t
    caTCh(exception& ex)
# F$ H; q. n0 D7 X    {
5 Y4 w6 ~! D6 I6 U     c! K& Z9 D) l. o  d! Z
        throw;
; Q, {2 G. r: Z: A; s' l* v+ G0 U    }5 ]9 f+ s6 e. U
}' B9 C, A4 h0 I. Y
$ T/ p- a6 E+ w
Shrinkage::~Shrinkage()
; b0 q6 r7 {# H- X+ i{
' q; E3 c- N0 J7 P+ j, N    if (theDialog != NULL)5 D& m1 g& Q' G  X5 Z
    {
( J1 k* m9 x/ |# X4 t6 f        delete theDialog;' E% g& ?" T' h7 O: w
        theDialog = NULL;
7 g2 ~: k* d- t! }8 \) g- f    }" {( M. \3 m. o, a. I6 t4 E& L3 q
}
3 W8 X& b' j" ]1 v" O- C  \5 Z3 s  z1 N0 N9 F
#if USER_EXIT_OR_MENU
) O4 B" ^& O$ M* f    extern "C" DllExport void  ufusr(char *param, int *retcod, int param_len)
( }! H6 o, T  o% B" \    {; u6 t# M' `, P! R3 c2 |- p' I
        try
5 y7 A$ t7 C0 U# j1 o+ U        {
; z, s  U: y/ A: d) R            theShrinkage = new Shrinkage();) S, W* Y& Z7 i3 e' Q. N5 O
            // The following method shows the dialog immediately
! L& W2 Z5 |- C  h, p2 E            theShrinkage->Show();* j; \- u8 G+ M, u5 b. C
        }) \1 S; ?5 m/ G# i: F' R0 M
        catch(exception& ex)
$ A+ Q. p3 n# P* R        {
' f4 _2 c9 U, x! n            //---- Enter your exception handling code here -----
5 M, S- T" M; C) F4 q( W2 Q            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
5 V/ Q6 W( G' h2 I        }
& Z. R. c% v- h3 S/ j        delete theShrinkage;
1 M( E  |- f" E6 ^% Y) i    }
% `3 X1 |2 f8 d/ q#endif//USER_EXIT_OR_MENU
/ Q& a: ~+ M  P#if USER_EXIT; W, T' [. L, F6 \4 E! M
   
- y1 Q, _5 M, B& H, I    //------------------------------------------------------------------------------1 C7 w5 U& q2 @
   
( B5 j% h  Y0 `% p+ n3 \    // MUST NOT use this option since it will UNLOAD your NX Open application image
! J  o# [8 F3 r, Y6 K! C    // from the menubar.
+ S; W+ A: Q. m/ x4 |9 z  b6 ]    //------------------------------------------------------------------------------
% m* B6 U  m0 ~( S" b3 b# b    extern "C" DllExport int ufusr_ask_unload()
/ u; F; O4 V  L; S8 {/ ~, u9 @    {
2 K( R: x9 F' O        //return (int)Session:ibraryUnloadOptionExplicitly;
: ~+ d+ ]) S6 K; Z3 b- E        return (int)Session:ibraryUnloadOptionImmediately;
; t, B9 m+ L$ G. R* P        //return (int)Session:ibraryUnloadOptionAtTermination;
6 r  d) P* _+ ^7 p1 D" M/ k3 g! a    }8 O3 W' R) B5 E$ a- j, [
    & d: \3 y1 J. q2 m/ e
    //------------------------------------------------------------------------------
* N, ~- |% G1 [, z& e    // This method is automatically called by NX.0 w9 W" V% _' X$ s1 L
    //------------------------------------------------------------------------------' ?0 ^! U# J- S4 d5 E  D" d& d
    extern "C" DllExport void ufusr_cleanup(void)
' }) a2 D  I" ?- P    {  v& L5 \0 n% ]+ W5 J* J) e
        try
& G; V$ ~2 K8 ~+ m- p, p        {0 b2 y' _/ j5 E) a
            //---- Enter your callback code here -----' Q" G& H! ?6 ?
        }+ ]; O) ?. e1 h# l& c9 i4 h
        catch(exception& ex)) ]/ q% k& x( P/ o' }- V. H" w
        {7 }8 ~/ D$ O. ]* j: l
            //---- Enter your exception handling code here -----
) g+ X, u0 v) Z( N2 @5 C/ F            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
+ w2 _- {& Z& n5 l, Z        }
. S# |9 @1 U' k3 i8 _) h2 o! n    }8 w- W4 W, F' G$ ?# D
#endif//USER_EXIT" S: _4 k& z  _1 g, z
    4 E- R9 D# Y; j8 x+ @) I
    int Shrinkage::Show()
" i, Q# f. A. [' G    {! B1 L! T4 u* f0 z* x3 _
        try+ p) j- H+ N- b( B
        {- N9 ~0 D3 {# n) {+ g  M! H$ E
            theDialog->Show();5 h4 t" Z0 K5 ?, P4 j
        }( |! k2 H# M0 Z% {
        catch(exception& ex)2 _9 Y; F4 j" L3 o1 `" k4 j
        {
) i( k4 v6 _1 W6 E3 w+ g            //---- Enter your exception handling code here -----
/ H0 s( \, t* `5 h            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());2 O# ?  T+ g7 R' Y( w' t/ R
        }
9 K+ F0 F) s: Q/ _; v5 f) }        return 0;
$ Y! b7 F/ K4 D; I, c9 V0 P3 L) l2 o    }
, E( `. f. n. Q5 K% X; |    - m( K& L( \, p, S* |6 B
#if CALLBACK
/ |  t; R, p& Z
( D) L2 f* R( t% d    void Shrinkage::Show_Shrinkage(), L2 W/ t. U9 F( ]1 g" G
    {
0 m2 _/ @  X! Q" n        try
! A0 y5 W" u1 ?7 q6 R9 V: j. b0 r        {4 y) @! ~/ v$ ]/ d$ |$ ^
            theShrinkage = new Shrinkage();
; o0 ~& `, w& d. n) n* B  F1 R3 C# N1 ~1 z$ g& z
            theShrinkage->Show();# U2 Q& i4 Q8 M+ u
        }3 h: U6 E, U, u7 I  p5 _
        catch(exception& ex)
" e2 W2 E2 H; I2 ?- f        {
7 n* x  i3 T3 N% k3 ?" X  {
6 y) D& a  N5 V  a1 v! j* ]! {1 W. P            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
3 ~  E4 C/ |: M" n        }
9 G. C! G1 p5 C4 l* a        delete theShrinkage;* y' C( a! k6 N0 C& I' w' y
    }( t5 S2 ^2 R" i: k7 d2 V
#endif//CALLBACK
! [- R- [1 O' h    / @0 K! m' j  G: p/ S0 R
    void Shrinkage::initialize_cb()! b3 O  n2 C+ k1 H
    {: ?8 T* t) p. w7 z- h) N* {. O! N8 a
        try
% l6 m' S, R0 L5 |% U/ q        {
5 N5 O9 }. r+ c. [: ~% x7 |) x            group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));# {' n+ o. w* ]0 s6 v
            face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));
. U3 ^! h" e' w- f" g            face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));
4 v* Z: i3 @# ^- Y% r: p            group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));
  N& G- i+ l$ q# F' j            bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));
2 A& c, I: f$ z3 f  ?. y" W            bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));) o8 P$ R- {- W" T9 ^
            group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));
8 m: S5 w; h9 v3 P/ L" E9 \            string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));; b- |9 R( S) ]8 x
            label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));
" p* W5 p5 ?5 ]" o& S1 e            string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));
" P+ c/ i1 V8 D6 Q; e            label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));+ v0 U. c4 z. @- S7 y
            label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));
9 Z4 Y& ]' w; n! b2 ]; l% |        }$ S. L8 v2 p1 p
        catch(exception& ex)
+ Y1 C( ~. D7 f" l1 r        {7 l5 g( ]$ @% m8 A* R
           ! p0 n1 @; ~  \* j" u
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());6 |/ N0 x, P9 w' S6 ~" u0 p
        }  Z$ V. }3 W& Q" l% d7 J  \
    }! x1 g1 A: u3 ~
    //------------------------------------------------------------------------------
, Y6 Q; _0 m7 b) _+ w) o9 I& ~    void Shrinkage::dialogShown_cb()/ s7 a, I9 J( s9 H7 y
    {8 t2 v, L" b3 e; I
        try
- B. p6 B2 H6 N4 V3 r- v' r        {3 ^3 E9 R2 \# v2 ?
            //---- Enter your callback code here ------ }! t& j1 q; q9 h: h
        }6 v7 D- o1 t+ {1 e
        catch(exception& ex)
2 E  }5 U; ]. ^, V9 _        {
2 N$ n( M/ B) E0 u+ z. t5 O
& B/ n. w% U6 i            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
$ c# G2 S; R! }1 G/ @9 N6 Y        }& z% ~+ t6 ]* E- H  a/ {! }
    }( i, ~( V8 C  t! D5 w7 o
    3 r( g+ n9 ?) d6 W, A1 ]
    int Shrinkage::apply_cb()
3 T% {* ]7 d( ?& x" s7 a6 n; y8 |    {
4 j# U, J/ t$ m1 y' P        int errorCode = 0;
' Q) m( P; [. a1 `' D$ p& {% C# |1 x        try1 P$ h8 c3 {5 d; V
        {4 }! K  t$ z0 P, t
            //---- Enter your callback code here -----4 r) h) @2 H- P7 i  B
        }7 q" x. @, Z7 m( h4 q8 ^' \, Z
        catch(exception& ex)
  p4 l, o% B! E: j6 s        {& M) p. p* u% ?/ U. H
            //---- Enter your exception handling code here -----9 S3 r1 R4 B3 S5 W6 D9 H
            errorCode = 1;
- y" h' R5 W8 t            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
7 z5 L) I4 K2 |, Y5 T+ @) \        }9 R$ }6 N$ r6 M
        return errorCode;1 |1 g' j; [6 c/ a& ^# r' @2 S3 v6 S
    }* o" D9 G% j- \& J5 u

* o% P3 o$ l0 J2 j/ j    int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block). w8 J9 v+ }5 d
    {* K3 e% b8 L1 B9 j) F
        try. Y' A# ?0 h  n5 m/ S' O
        {
5 O3 c( A$ m( v* ~  z& R            if(block == face_select0)- r0 N' x6 n- X% S/ n7 U
            {3 ^2 }. U5 z3 a( c& x$ v1 i
            //---------Enter your code here-----------
$ m: M1 r. N9 q; ^. ^+ K  r            }
' s% ^. {. _7 G            else if(block == face_select01)) U3 b2 N( p: [  X! W; Q
            {
3 v! {5 U+ l% d: ]9 F            //---------Enter your code here-----------
+ P/ ^4 q. `' t3 }4 j8 u# X" Y            }: K( W4 @' M: p; ~+ ^
            else if(block == bodySelect0)
8 C6 ]5 g. a. I: D            {
( {6 }- b, ~/ `9 {* g            //---------Enter your code here-----------, H1 q. J& O- E5 C
            }" G8 J) N& Z7 b5 J
            else if(block == bodySelect01)8 x; s' V7 k. Q5 A
            {* N% n: S2 m) j/ \
            //---------Enter your code here-----------
# w$ U/ U% q1 _/ I) e* @            }
% w$ C2 M: g0 ]" L( K1 J  J            else if(block == string0)
1 r! j6 f% U9 P4 x- }  K            {
! U. R3 Y/ u- a7 A3 ?# e. B; R            //---------Enter your code here-----------
3 l1 L; n# H& c8 p: ]! b' ~            }) B' ~  N' ]+ D2 t) A+ i( L- _
            else if(block == label0)
8 m8 Y* S. ?& @1 e' A0 `& i* }            {
. W, T+ F& l5 c. ^& K( n  `: ~# O4 ^            //---------Enter your code here-----------
8 p. z  Y  Z5 u- ^& u            }: H. b* A( X$ T1 ^8 s. E
            else if(block == string01)  {- H# W, r: @
            {
$ E" m. N$ m# A- z3 W; @* ~1 W            //---------Enter your code here-----------
- {1 |7 }$ Z* s$ \) {% x# M            }& c. a2 }! k* Y: K5 y! S9 h( m
            else if(block == label01)
) X( l  |5 b4 [0 p" y            {$ y  [$ J8 t( S) J$ O
            //---------Enter your code here-----------/ H# R# [& w# c4 R( T% N/ P- G
            }1 t* _! w& R1 M+ h
            else if(block == label02): S. L2 z2 m. k+ g" }2 Z
            {4 M3 C( `1 ]8 c) X
            //---------Enter your code here-----------
1 U+ _. a6 Z" X5 Q1 Q            }" S' H$ n4 C2 h' U6 J$ h( G- G( @4 I
        }( {; }1 A) v1 ]% I# d
        catch(exception& ex)0 V" ]5 B7 D+ E0 V& ^% m
        {* i. J' k8 {+ N- T* j. {& p8 I
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());- Q$ N: x( `( ^& i
        }
( K7 |" M0 N" p- [2 ]        return 0;+ t, d/ l; i! f, o: d+ |
    }
8 w5 f  ^6 q/ B* ?/ w    5 @' l% X0 k6 y9 f( D1 L+ `. n
    int Shrinkage:k_cb()* K1 y3 x; w' p; F
    {
4 \- W7 [3 W/ i* u: [& j        int errorCode = 0;1 N( v& ?- [2 P/ h, {/ o
        try
: h  A  |; ^+ i1 m0 ?) [' j        {5 v/ `0 ~! M7 U5 o8 p1 R
            errorCode = apply_cb();
  j7 @7 Q2 R! f* E! r2 }2 c5 w9 n        }
* d6 \/ G6 H2 d        catch(exception& ex)( e. l" l9 o) s7 T( Q+ L* i
        {: K6 w; v8 v: _3 D7 t
            //---- Enter your exception handling code here -----
5 m* ?- T4 A$ p0 Z            errorCode = 1;
5 J+ C+ j1 g% n: A% E# `            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());9 Y# r3 A8 W+ r& H# d7 H" c
        }1 [# T! L1 l& R3 C
        return errorCode;
* J$ o' q# k) p' e    }
) A  W# j& P0 F9 u* {3 I   
* n$ O9 g* c7 s. c    //------------------------------------------------------------------------------9 G+ E+ K: V" v+ X  _# ~& n9 Y8 I& n7 }
    //Callback Name: filter_cb
) s6 B0 z2 x% g% B$ S. |8 f0 n    //------------------------------------------------------------------------------
/ }0 D' D' J$ G& F: W7 D6 Y4 [    int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock*  block, NXOpen::TaggedObject* selectObject)
' H0 e- y, W! r* w. H' x$ X. T    {/ Y" H6 U" }: J/ m' ?7 W5 y" z
        return(UF_UI_SEL_ACCEPT);
1 u. a9 |1 @6 c0 z& j8 V4 F    }
/ O  ^! \# H4 F8 g8 Y# r2 I* L' l5 ^2 M    & T, B* Y* B2 {) x
    //------------------------------------------------------------------------------" \8 }1 k, }+ [" l7 q
    void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
  W0 {  J* `& s& L) L    {9 o, X% D8 A# g  }
        try
+ p% o( P3 r# o' ?        {
9 W2 O5 i/ H" `/ E3 A            //---- Enter your callback code here -----
. [# z4 x& ?4 Y; p. w& Y        }! P/ ~. C3 ^! @! Z7 c
        catch(exception& ex)" O  y# L7 h7 f6 X
        {- _" w3 l8 {$ ?& I6 Z2 N1 [, D
            //---- Enter your exception handling code here -----
% Z7 \/ K. h0 ^8 Q# E            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
7 T8 t' T6 l. ~3 z9 k! V        }
2 l/ ?; e/ c& M# T+ {0 Y+ P, o# S    }; H, A2 V" H$ _: x2 G/ N" U
   
  V4 X- d% y: B* Q    //------------------------------------------------------------------------------  i6 ~7 H7 t3 |6 L  V* V
    void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
) J2 T4 }$ c+ M; Y5 v3 x    {
- a5 B2 R* k7 |! \        try
. \0 x9 M5 c0 k' C: i, Y        {$ b' d! Q0 j3 V1 j8 Q! Y9 l
            //---- Enter your callback code here -----
6 T/ v- G0 C  P: T        }
( I& d0 U2 J. b        catch(exception& ex)
, ]/ ]! l: z7 {# m3 S$ B+ u8 p: n        {/ `& o9 |- ]/ G. w) J# X& h' Z
; [0 B6 w0 Y% y2 j7 N
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
3 F& }; p% x, O" S& z) E+ p! P( Q" q1 G        }
# ~; T& l: |0 P& `( H+ ^    }
6 A3 w. }# u8 x7 Z: b# l7 Y+ h
  [+ Z' j! b' ]2 _1 u
2 a- W. v  g, p: C/ r
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二次开发专题模块培训报名开始啦

    我知道了