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

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

[复制链接]

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

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

lzhyi 楼主

2017-2-14 11:29:07

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

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

x
本帖最后由 lzhyi 于 2017-2-14 11:32 编辑 , r/ K" V3 b) ~* j# r* \. d. X
* j9 S4 c! r/ }& M* \0 M- R
请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr
) }& R# ~/ |+ z代码如下:
- Q8 Q. b6 y( R#include "Shrinkage.hpp"& z$ n9 Z$ }% T+ Q* l  A
using namespace NXOpen;
  Q2 `. D% p4 C/ F- i& `using namespace NXOpen::BlockStyler;! B/ ]: B* w' l2 I

* y4 U! Y, _6 k4 z0 O+ aSession *(Shrinkage::theSession) = NULL;8 f$ t) p( G& }
UI *(Shrinkage::theUI) = NULL;
0 r- m3 |/ c5 f% o% x+ ]9 L- L( J) w& |2 j: w# |* U
Shrinkage *theShrinkage;: K0 y; {9 L" @( l

2 M8 Z% c2 O# ~4 @Shrinkage::Shrinkage()
* E5 A3 g; h2 I8 m{
: k) o1 }$ p# E* h! E" i+ C% y2 d6 z    try) i5 {$ A' n9 q$ J
    {& @( K9 p6 p* x$ @. ?- o7 k$ }1 N
        // Initialize the NX Open C++ API environment
* u3 r( b" |5 F4 R- d        Shrinkage::theSession = NXOpen::Session::GetSession();
" Q7 @6 }2 ]' X' ?        Shrinkage::theUI = UI::GetUI();
7 k, d1 i9 F8 p6 Z        theDialogName = "Shrinkage.dlx";8 T5 [& F5 J  N+ f1 H( F: `
        theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());
" Z( K/ C6 Y$ f) G1 a1 g  h        // Registration of callback functions1 w/ ~/ w1 t2 w2 J, v  t
        theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));" L7 l7 ^! ]2 X  d
        theDialog->AddOkHandler(make_callback(this, &Shrinkage:k_cb));
* S+ G% S2 E# ]# \# B3 a/ W        theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));1 \$ [- X. [1 H& a& _6 f3 u
        theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));/ q, T+ l: h: a, z) k3 l
        theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));
7 ]- ~' X6 u, G$ P5 h, S' q' ?2 z        theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));
$ H8 w0 b& X' w$ r2 l* W        theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));
* v, D: @! S( k2 B/ k8 w2 ^        theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));
" p6 j6 k( Y( e. c* H+ ]; K/ w/ T( ~    }
8 R* R6 W5 e/ \- C    caTCh(exception& ex)3 L, B8 W3 V4 O  S6 d+ q
    {
  ~& ]" g& [9 D   
- f( E1 K* H% D: f, P# w- \# @+ j        throw;
" W2 ?$ X; X& h# S    }
! W3 l* ?8 ]; T/ I+ X( Y0 A' f9 d. g}( E1 ~1 F" ~( _8 [  A
3 L" h' p: [* K7 y
Shrinkage::~Shrinkage()
4 C+ ]2 g' ]+ o" a7 N8 K. N{
0 X& N  s9 W& _* a    if (theDialog != NULL)
7 S/ S! k+ ?# Z. V, q    {
) _9 O) E# A' r# L& B4 m, }8 W/ }        delete theDialog;7 f7 T0 @3 j% Z# U2 y2 A6 n
        theDialog = NULL;
8 I* i; T/ `7 c    }
. i1 F: U6 T$ |}: Q# |; V+ c: o. n6 f" @
9 l. m: t+ ^! Q/ ]1 V" S. T! R* J
#if USER_EXIT_OR_MENU+ v  `: x' q7 _/ ?0 d# k
    extern "C" DllExport void  ufusr(char *param, int *retcod, int param_len)
7 r8 S0 p) U: K6 K# g    {
7 f9 T* m9 c: v8 Y3 o5 ]        try
) N* P  \  k+ O, q" a0 Q" N# V        {
# R1 R5 o( }7 Y& n2 k; [- l            theShrinkage = new Shrinkage();
& t% g8 J) s) L5 |7 a% P  `            // The following method shows the dialog immediately
, p8 j8 l6 b! @* c            theShrinkage->Show();# C: A8 I! {: w, e" H  U" k
        }! v( b4 u( |4 L9 r
        catch(exception& ex)- J5 L9 F, a5 G. u4 ^
        {/ B" O, D4 q1 U) V% e# L$ m
            //---- Enter your exception handling code here -----1 |# b3 Y4 G+ x) M: c2 {' y
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
7 B) r" W1 f8 S, Q- Z        }
: M. M% B4 n& q, E        delete theShrinkage;' t9 _( }1 b# S
    }0 I# ?7 D. T3 c* n" u; w
#endif//USER_EXIT_OR_MENU
& L4 i6 H  y4 D) @7 J#if USER_EXIT
& }# r5 ]7 ?$ J8 K    6 J! i$ `% b: ]( J: x# {) V
    //------------------------------------------------------------------------------) d4 F$ P0 Q3 \5 h/ p7 v8 ]+ a8 F
   3 J- Z  k6 V4 ^0 y) `( [
    // MUST NOT use this option since it will UNLOAD your NX Open application image% N" o  E. }+ B# }
    // from the menubar.0 |/ n  Z) l" O/ A; L9 g1 K
    //------------------------------------------------------------------------------
* ^3 a2 x0 }2 t, y, D  h    extern "C" DllExport int ufusr_ask_unload()1 u% |# r1 f3 k3 P! y/ Y* `
    {
, W% p: f! k7 M  R" q        //return (int)Session:ibraryUnloadOptionExplicitly;
5 u  g$ M, `& [4 Z        return (int)Session:ibraryUnloadOptionImmediately;1 O" z6 b, R$ K+ q4 X7 b/ n
        //return (int)Session:ibraryUnloadOptionAtTermination;
. B9 b+ |$ Z# m# O) B5 D! Z4 L    }
" u& I+ M+ K! w" I   
9 p6 `3 ^; N( D6 v2 C+ g. P    //------------------------------------------------------------------------------
0 o" @  t" i  Q1 |+ ?    // This method is automatically called by NX.
7 N! a2 l; E# B; x! G    //------------------------------------------------------------------------------
# [* J0 n3 G, m5 U) I9 y. S    extern "C" DllExport void ufusr_cleanup(void)
8 W* B$ [* Y* y    {
8 \, U& y! U: U: b! B+ M3 V        try
* g7 ~& w3 F( C6 z4 u9 `4 p+ c        {
% Y+ P! ^6 e, `4 k% k4 R            //---- Enter your callback code here -----
9 t6 m7 r) Y5 h" d) o        }
7 w+ I8 X1 z  K$ k( j8 s        catch(exception& ex)
6 c; R8 F4 n6 a& z% Y0 Z3 L# [        {
0 J  k0 x* r; K; H5 V, C            //---- Enter your exception handling code here -----7 b6 @% f) G; P/ l2 D8 F: B. L, U
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());* m6 w/ X1 a3 Q( b& z
        }
5 `9 F3 l3 h5 G) d: R6 o+ P2 j1 Z    }
2 d* w" ?( ~4 w! A# a#endif//USER_EXIT" @  |$ B/ E- k: t% A( L, v" g4 K- q1 O
    * b" w7 y/ u  y, _1 |
    int Shrinkage::Show()$ A# ~* G; E# b# Z& @& U
    {
6 @! [% j: K+ ^2 h        try
0 ~% z* N$ U) d2 v        {
5 M1 c; P! h7 {" Y6 A( \: q2 R            theDialog->Show();
" s6 Z1 G2 T9 _# H: H. u        }* E* u. H3 N8 q& v6 l6 R; G6 m: x6 I
        catch(exception& ex)4 `0 b; U3 \, h* j% t4 Y% I
        {4 \9 Z5 c1 E) S$ [9 a3 w; ~- ^
            //---- Enter your exception handling code here -----
9 B& y. T; g$ S4 f; F            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
  J7 X( \+ K6 o2 g% [        }4 }6 i0 a$ y0 e% I6 c  l3 X
        return 0;6 I4 R+ @& m* Q
    }
9 B. d; P4 l( z9 Y2 Q    : B7 C. c2 H: [: R8 m* f9 V
#if CALLBACK  Q9 N7 ]3 n' K/ O0 S, k! _( ]" {

* n- t6 W$ m% }+ [# A6 j    void Shrinkage::Show_Shrinkage()
+ r) @5 i0 j0 P6 H9 w4 a( C8 c    {
2 N, H7 j, B5 ]. q, S        try7 q3 i6 _6 M! {  [
        {
7 P. h5 m( w& B8 }) R            theShrinkage = new Shrinkage();
$ K6 ]* t( t4 i/ w3 d
/ o# i! m; E& X2 c, Q7 w3 _            theShrinkage->Show();& }! v" _5 ?) S& v: z/ f% W/ D! }
        }" p( \0 E6 _+ H5 X( R
        catch(exception& ex)
* b. ]# \0 @% i/ c; c9 F1 D        {+ Y( |* [5 [, m. C: N& p
. w6 `8 _& D% l7 o
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
6 w8 l% Q7 {6 z, J        }
' o' H5 D9 n; Q6 A) f+ T        delete theShrinkage;/ O; I& F" s- _$ j/ U  I/ ?
    }
8 C/ c4 m( a* r#endif//CALLBACK
# x8 g% l- Y- `    9 j3 E7 R6 |0 z
    void Shrinkage::initialize_cb()
6 k/ q( w. ^" ?: [, _    {
6 ?$ i( m2 R2 N' q6 O        try
8 F* k0 q9 q! Y0 P' V        {
% l/ _2 A" K, t+ [7 H: V6 Y7 \            group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));7 \5 W. K0 Y$ l2 S- c, \2 |  O
            face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));5 G6 B! W& B* g2 N0 \" ]
            face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));: @' j4 @/ G$ B1 h( k. A
            group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));
4 B& ?( I3 s+ @1 b            bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));
- X! U: H5 o1 H0 F+ ?            bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));
7 C4 _! r+ `% W            group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));2 ?. J' }4 F- \+ }
            string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));
. u  R4 k  }0 U3 V; U0 x            label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));1 c; H/ `& G! V8 u, F7 p
            string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));5 Q- m9 i/ s1 w9 Y
            label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));
- x4 O( q8 V, A- |* m/ H6 L            label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));/ |8 z5 n  }9 v% z) e! Q. h/ [  n6 P
        }7 b/ i5 r2 M' |. o
        catch(exception& ex): ~( c7 J+ L/ B! |9 P$ Z( E  z4 t
        {$ D3 |  E8 s# i
           
& h8 M' n- u4 e* x: o4 `* L1 n! d2 ^            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
. Y# D; ~0 E5 z        }
) ^9 w- d/ a' k% {* G  R. r/ ~7 X    }  o9 L6 Y" x8 F, Y# Q0 F  N( P
    //------------------------------------------------------------------------------
/ v8 ]' E! [% V9 ?9 P    void Shrinkage::dialogShown_cb()
+ S7 O5 f* N$ ?- ~. n+ I    {( t# e# {. e' a2 \$ U
        try
$ m# N& V& W2 D1 X/ h1 D/ V' m        {% u, D' Q5 I& ^$ u
            //---- Enter your callback code here -----
+ ]! {% H; R  K3 L! ^% e- r2 r        }
: j9 u$ [0 P8 o* r        catch(exception& ex)# T" G1 U+ R0 j/ \
        {8 w4 D2 x4 z5 {# M6 |- a+ H3 Z
  n* a  y3 H/ b
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());+ R, g6 ~) R8 E/ O, T2 o
        }* u0 S; C* ^: E$ G" k. j* M
    }
  A/ j' ]7 k; W$ m   
$ J7 _/ d% F+ [    int Shrinkage::apply_cb()
0 F! K" m5 q: k6 G9 w# ^# h    {' M# L# ^8 M4 @
        int errorCode = 0;
" L; G; v: ~) c* m! }' Q9 G9 l        try
8 C! H2 |! g6 I4 {+ X9 ^. o8 Z        {: [; i3 A% N0 f
            //---- Enter your callback code here -----
7 \3 L5 u4 ?+ n        }: }! l0 O3 _* p
        catch(exception& ex); B, h0 r* @$ x
        {
; h( A* ~1 P/ O5 |7 w9 Q            //---- Enter your exception handling code here -----0 S) K2 ?/ R* `- s, l
            errorCode = 1;
5 [3 W. _, {% S6 k% f6 a            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());+ K: o8 g, D1 E- J: \& @
        }% _) H8 j% T& ^* K- `* g; {
        return errorCode;# u  W; ~" R/ [, u& n9 N
    }
2 ]% e  ?8 I, J3 q# u8 A4 Q* n' C6 W9 t2 I+ k# p
    int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block)
  R' ^) i, b# B% g    {
. o8 `$ u4 Q; e( g. s  q+ p. w        try
1 B( p( H6 S5 d" A0 w& d        {
+ z) d: n# h! G# N0 Y, X3 o. I            if(block == face_select0)! |  X. v3 `6 y$ U
            {
- u2 @; }# P9 ]$ s" {1 V3 f            //---------Enter your code here-----------
1 {7 W2 Y& x; [9 n; J            }
* G4 m4 d3 I- n) V& V! z: m            else if(block == face_select01)9 ^% f3 s* C$ @, m$ `3 Q
            {
, F, L+ ?% C7 T  z            //---------Enter your code here-----------0 S1 q  F4 b+ e& \; u( G9 H
            }) n/ o& s6 I, P' D
            else if(block == bodySelect0)- t. x  e/ L* Q, J) m3 o
            {, I. P$ W4 x. _3 ?. W1 z+ v, j
            //---------Enter your code here-----------1 L$ w7 R! K9 a
            }9 b5 X% S1 L; Y
            else if(block == bodySelect01)" T/ U; l* D2 }+ ]3 T- H
            {
5 q) ]3 R# X  a( x" }            //---------Enter your code here-----------& r8 F- M3 y2 ~" I, e
            }
+ F0 q, m2 A' K* s! r. h# @, g            else if(block == string0)
' X) S0 s% l+ e) G: [            {
' ^) ^& E, D, A            //---------Enter your code here-----------  f* _, ~! ?- m, D7 F
            }
& [; L$ W# b& K7 }3 {2 e            else if(block == label0)7 ^1 M  o' P; y- _0 k5 y' \3 z
            {
, h+ z( _3 K0 X0 c, H2 N( b4 }            //---------Enter your code here-----------! ^2 i# c* R. O( n8 s2 e& x1 t
            }% W# J. ~8 F& W4 ]' O2 K; J( V0 J
            else if(block == string01)
; D+ h  S2 U, s. v1 @6 }            {- I- c: _  G# s: N' j
            //---------Enter your code here-----------5 q; V: B$ z5 U4 D
            }$ d: X$ {7 A9 @& c) ~& N; X4 N
            else if(block == label01)' {+ a8 `6 i+ @3 z& m
            {
# r  ^  P$ C6 x3 A" d            //---------Enter your code here-----------
4 a% o- s  Q, Y, n+ R            }
* a* C9 ]5 ~* |% r0 j            else if(block == label02)
6 g- o1 |5 q2 g+ X- N/ V$ U            {
% h- L3 X7 B9 p- Q7 R            //---------Enter your code here-----------# _9 M" w) e# @5 P+ [
            }
7 n, ~! M8 q* k- m* J+ s( E        }$ f; {0 g( t$ f: w
        catch(exception& ex)
7 w2 l/ k' c; g% S$ J& E        {, D& d  u$ f" l1 @
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());# K% E# T# f1 P3 W
        }
5 L) @0 ]. d5 H( c+ X/ q        return 0;( ^) V; ~& e6 Z5 h# t+ [9 V* _; s
    }
9 h# ^2 ~& I  x2 P) O7 F    $ x( I* V7 e2 C2 |* z7 h' Z! h
    int Shrinkage:k_cb(). f7 h1 \/ ], |- g* p
    {6 t: }" ]( L; e$ c0 g5 m
        int errorCode = 0;
/ z/ D" I0 I2 z  F& {2 U) I9 B        try
; F4 h5 g' ]$ o5 S: e! S. @        {4 Z3 \7 f) u# B; q+ T. J% I) F
            errorCode = apply_cb();
0 s, f$ y. e% f3 R5 I$ h- M3 i        }1 S0 p( ^3 }2 ], P
        catch(exception& ex)
( M! A* I8 U! u# l1 U6 A0 j! m        {
0 E, g* O, z( j, n3 d0 a$ @3 Q            //---- Enter your exception handling code here -----
( P4 b8 X! V3 `7 [            errorCode = 1;
2 o0 C( M; R* H            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());- N6 K! T3 @# H. Z
        }/ a( _8 z' g: F" i- G
        return errorCode;4 l5 |9 n% r+ i4 S, v
    }4 Y5 c+ ]4 I! T( W+ d5 h6 l
    & t# p$ G3 S2 b' B/ O$ I# ~
    //------------------------------------------------------------------------------
5 S" A: C  I; K( O% E9 m    //Callback Name: filter_cb& O4 H4 V2 ]  Z
    //------------------------------------------------------------------------------
) C' j1 z/ `" o7 ]. N. r    int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock*  block, NXOpen::TaggedObject* selectObject)( g  l; C: U+ e" S' ^
    {
- a/ d! `2 E) \# G' e3 [        return(UF_UI_SEL_ACCEPT);
& u. ?0 h1 e+ N0 `, p    }  h+ @' e9 _; w/ D6 U: ~
   
/ ]9 r3 l$ E. R8 a: X    //------------------------------------------------------------------------------
7 h; r4 b% c3 A2 E. N    void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus): r9 y! z" D: k3 W9 H0 n/ s
    {
* M) ?* u6 `% v( J7 a4 V% C6 i        try
$ o( ?0 K) H3 {8 I. j1 V        {, E0 ]7 n& b9 e  M
            //---- Enter your callback code here -----
0 [; {2 F% E1 @% X- S. l        }4 s( p6 i$ y& I! ~* F- p  \: Z
        catch(exception& ex)# h! D6 k* p* U/ f- y, J
        {; M9 }1 O6 E5 D( \/ F! a) |
            //---- Enter your exception handling code here -----
; @: `. R/ {7 ?2 o1 @* C4 t- L            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());/ `' i: {4 e' I/ Q' k/ C4 J
        }
( `8 y* T7 z  X9 E    }/ m' `' v/ a: y
   
5 X5 J  \3 W; s9 y# L% {+ e% d    //------------------------------------------------------------------------------& J3 _) u: ?! _4 F! Q2 `1 W
    void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
- ^: n4 d3 [0 D3 u) j* Q    {
1 `# |$ s, G' I* J3 \% o; _9 r        try! n* K: i3 x3 E0 r+ R
        {- o( o% O- K7 M% u9 Y
            //---- Enter your callback code here -----
( B( ?; K; o$ l8 M$ g( g        }& t1 ^( E0 j/ B5 W- |) Z
        catch(exception& ex)
, U; ]2 ^# o# A+ E6 P3 e2 r1 e        {
; Q+ N4 {3 B( H+ V% ^& x- m" c: Z6 z$ `8 H3 v7 k5 U% T! E2 m
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());# E4 N- L* |% S# q# B
        }
: V) I1 L4 E8 t; d& U% n    }* z1 n, U! X' {3 b+ h" x

' ?- e# G0 z+ T9 w. P5 j  \3 i, `2 y; [
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二次开发专题模块培训报名开始啦

    我知道了