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

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

[复制链接]

2017-2-14 11:29:07 6688 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) p  G, o) O: V3 h) y2 g
6 O* r5 k2 _' L' K7 W& O请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr3 T: \0 n) ?# t
代码如下:: y* f: D- b1 Z- `
#include "Shrinkage.hpp"
0 n( j5 u6 E! ^/ ~9 nusing namespace NXOpen;
2 l8 L& Q; U: ~# kusing namespace NXOpen::BlockStyler;+ ?: f, C& \* q2 H$ _  h7 y1 L& m

) Y" {* @. z3 {5 t6 d" _Session *(Shrinkage::theSession) = NULL;# s* L, Y# q, L+ p* Y2 E9 ]
UI *(Shrinkage::theUI) = NULL;0 [* `* d: y8 B# J2 u
6 Z+ S7 Z* m8 S0 S/ l
Shrinkage *theShrinkage;( ?, V0 b4 }" y  n
9 x0 {/ ]/ X# p3 P! p
Shrinkage::Shrinkage()7 a$ p3 j3 w& X5 ~1 Y
{
  w, R" i5 W% B) M1 j: v0 {    try
0 X. v% {. s6 s: p2 ?; g, @+ Y    {
8 ]9 j. v( O+ [- T, O# U        // Initialize the NX Open C++ API environment! i: \9 c+ B* R3 O8 o  ?0 R
        Shrinkage::theSession = NXOpen::Session::GetSession();
! L# a. F. B3 `4 M        Shrinkage::theUI = UI::GetUI();+ U/ P4 ?+ L  h4 g7 R
        theDialogName = "Shrinkage.dlx";
2 \0 P& m. _. D7 B2 t) s  W" g        theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());% D0 X1 Q2 Q' K$ [9 m6 Z
        // Registration of callback functions
$ h$ d/ ?6 w  I1 j        theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));
4 J! Z8 |1 u* X3 {$ j        theDialog->AddOkHandler(make_callback(this, &Shrinkage:k_cb));$ {5 j  ~$ N& x+ C; e
        theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));8 o+ O2 L+ a' c! p  G$ K
        theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));. C  o. L! u4 [, @
        theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));
/ V" g7 d  \0 \, c7 h! u        theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));
9 K+ g2 ^! m$ ~5 n1 X1 Y" d        theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));" A4 E0 h/ T# G! r/ ~
        theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));- s& Y# K* Z9 k0 U( m3 I
    }7 s; a; V6 v4 a% i3 |2 P
    caTCh(exception& ex)
& C5 h$ ~5 M' v. Z    {# Z- X: n, E0 _3 b! y9 m1 V
   
8 Z) ~, Y& H# b: h) G/ @+ J' Q        throw;
7 F1 C- e8 w+ |0 U' c    }! @, e1 d5 @. j' a: h
}5 p# i$ J4 x6 y* ^& r
6 G. {/ @: x# f
Shrinkage::~Shrinkage()5 s4 I7 n" {0 q$ _  v
{# u6 b( d! x" l" d3 q
    if (theDialog != NULL)8 y5 g7 D/ P. Z2 n: \5 o& |
    {  Y, I, s4 w# c) l4 r% p
        delete theDialog;
! b0 p$ ?- c1 a4 K6 R- D. Y        theDialog = NULL;
" [) F$ }9 K( w- g    }
, ^( k/ k+ x8 R; R" q3 P}8 g! U: |; o. H: ~& r% `
% L9 G0 X. u9 I
#if USER_EXIT_OR_MENU
- g  a$ c( ~6 q9 x# z    extern "C" DllExport void  ufusr(char *param, int *retcod, int param_len)0 p' D; Z% D0 [+ K$ T/ I/ Q) L, Z2 E
    {4 w: t+ |6 }; w% P5 o
        try* D  f) X; {6 a! d
        {
7 r' j2 l+ ~/ E            theShrinkage = new Shrinkage();
& ?% b( X% \  @2 t4 C- |$ K            // The following method shows the dialog immediately
$ m2 N: |* Z) \8 j5 S            theShrinkage->Show();
- Z( b$ Z0 `% L0 t- P$ q        }
* V( }1 \7 d- N- B7 J        catch(exception& ex)3 Z! Z. H$ t8 n1 A* @& `) F: d& c
        {5 P$ x4 D' e% Y3 O3 ]
            //---- Enter your exception handling code here -----" d3 _* r# P5 n2 K' K3 k% x
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
/ k( g" M% o( g# @% p2 K3 y; L        }
7 O# `/ r" O+ X2 o! Y        delete theShrinkage;
: C7 }9 T% V0 K% o    }
3 ?  N2 @3 D7 }#endif//USER_EXIT_OR_MENU% v& m1 ~& W; W. W# f1 h( s- z
#if USER_EXIT2 `& t3 {0 ?' ]' U& R/ `. c  q* r
   
3 Z& j) M1 N3 S' f" r$ t* f' c    //------------------------------------------------------------------------------
3 k9 q8 e6 o8 u1 ?   
8 Y% O; L- r/ N# |    // MUST NOT use this option since it will UNLOAD your NX Open application image
. D. G7 G- v- e% {  Q    // from the menubar.
* F+ h- S; H8 L! ^    //------------------------------------------------------------------------------
8 i: c; |. `. Y    extern "C" DllExport int ufusr_ask_unload()* X) c+ [" N' `9 E
    {4 S8 O8 h8 @4 O. C! a1 Z
        //return (int)Session:ibraryUnloadOptionExplicitly;
: ?3 F8 e+ V# O% T$ \- R7 ]3 m+ ]        return (int)Session:ibraryUnloadOptionImmediately;
3 f1 P  V7 `  }9 D# P' _8 ?        //return (int)Session:ibraryUnloadOptionAtTermination;0 \% Q8 b- h" U- O4 K/ C' e+ J
    }
+ n6 s% w5 c$ s/ \+ y( O/ ]    , q! `6 v; Q/ f. {
    //------------------------------------------------------------------------------
& x$ a& u7 V( D' R8 `    // This method is automatically called by NX.' i" W& F: L: Y$ s
    //------------------------------------------------------------------------------/ P+ f/ e4 S1 l8 ]( `( C; \
    extern "C" DllExport void ufusr_cleanup(void)
; s" ^! J7 X7 w) {' A3 D- B3 V    {+ M% g  ]" N, X& ^7 I7 d9 |& j. r
        try
% n+ Y2 C8 A% c5 }! A% `        {4 {$ ]9 B/ D! {; V4 m
            //---- Enter your callback code here -----
- O' K4 Z# V$ O, ~; a- h0 `        }
- a- O8 f" k0 Q' q; S        catch(exception& ex)
* r# K+ Y( ]: {2 G& a        {
  {8 Z! V+ D: m7 s, ~            //---- Enter your exception handling code here -----* h; y) `1 x6 E
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());- N* M  z! f2 k1 G0 f0 Y
        }4 R& ?, Z( L" v. O: k' |  ?7 {7 x
    }
9 r$ r3 J: V* P- }4 F#endif//USER_EXIT8 t3 W2 H( K. a/ z1 K' `
   
( z# [7 X: t; j! e" G    int Shrinkage::Show()
. M8 ^! S3 {5 _9 u$ N' v    {5 o, @5 ~/ ~. t; g* U6 Z& j
        try
( k* [2 W: w4 k6 n. }        {4 ]; U( j0 [! u
            theDialog->Show();
8 {" @2 R9 u, L. k        }) v4 w3 h9 {9 c
        catch(exception& ex). r4 I5 s8 g0 c+ {
        {, O- a% m" J) a# P- a- i
            //---- Enter your exception handling code here -----$ d  X( J3 g: Q  q+ G5 H
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
, S; c9 r$ f, R4 c( {' a        }
% h' ~. s: p6 c; B2 q& m! b        return 0;, k0 C' Q( C- |
    }
( q  W% j# e* v7 ]% F    7 K( D1 u+ N7 \8 _3 C
#if CALLBACK9 g& N6 @- u2 v; k- K. L. @: j

6 N& u6 |, b  H% n! [1 H( @) y    void Shrinkage::Show_Shrinkage()$ O9 f- Q. S$ c) u
    {) @$ s$ |4 V0 F' e8 c3 g, N3 @
        try
+ v2 J# S6 @7 k# }; W        {- d, A$ E1 G1 h! E
            theShrinkage = new Shrinkage();/ n, b) s" e9 t4 ^" x

, N6 Q' @+ P' e) I3 m% [            theShrinkage->Show();" q7 P4 M" f8 m" R6 O
        }9 ~0 g1 l7 F1 }! M& G0 b3 o
        catch(exception& ex)
7 y9 ]1 Y6 Y3 B6 N6 T) L0 O: V        {
+ ~; P* [+ t& c  l+ z  w" k9 l/ K
+ R5 E) A5 D8 G3 l' G* j1 w            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());% j7 S" P/ j- r& w$ m9 x" v0 ~
        }
" @6 y' w# m# ~: X9 N' p        delete theShrinkage;' i: K6 z, E& B4 K9 p: P7 o- N7 M
    }5 t  Z0 J0 |% s! A+ {4 k1 W7 B
#endif//CALLBACK, s/ p6 c: z8 B3 E
   
; c# p. y8 p2 f    void Shrinkage::initialize_cb()6 J0 p; @) s# ]0 `* j5 U6 Y
    {
8 h: w  F0 B, T& c4 {1 @        try
; T8 [6 t& Y# B# }        {
$ Q7 D# Z2 U/ s2 L  {            group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));
7 R8 D+ a9 e; N, X3 `5 _            face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));4 n5 b3 Q0 U6 C
            face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));: P8 y3 Z: r" w7 v
            group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));' T( G* B3 Z9 l6 }& ^
            bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));
* ?1 |! e/ b0 o# d. e; x' P            bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));9 Q$ j; H; y6 x
            group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));: Y8 Q9 t- m; z* G% U2 a
            string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));7 Y7 _: y* d1 W; D4 E. r
            label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));, _3 W. y; {5 |3 i
            string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));$ y3 g. J9 L& R! U9 H7 ^" U. u
            label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));# r8 b8 D1 I' v, j0 G
            label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));
% K+ b+ e; u; M) D# A. ~2 @- I        }
( r& @( Q. B" S' A+ S        catch(exception& ex)
. J) C+ K0 z) _# C/ l        {
( ^+ X0 B- {+ @; g7 U  M/ E5 O$ u           6 ]5 D1 j: r$ |! e8 b
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
8 j) ]7 C; i* s! s5 R        }
3 T0 u' A  V5 C$ z    }
0 i$ S/ x+ [5 N9 A7 P0 @! v    //------------------------------------------------------------------------------
  ~$ b! `9 W* Z, R! }    void Shrinkage::dialogShown_cb()
" m+ G" @1 A3 h8 Q8 V+ X4 J    {
9 O; _( G" n2 j! {. c/ l3 U        try, D& I: n; F: p% A: L' Y, w7 s) J8 i6 y
        {$ T' J, v0 C) G) A& m. \" t, N
            //---- Enter your callback code here -----
/ V: G+ }2 _4 ?" F4 ~2 ~* s        }* \6 w2 ?5 h7 g/ ~- j+ t2 h
        catch(exception& ex)
7 R9 M+ f+ e! e        {0 c& f6 Q1 `+ {0 P1 T

/ P6 F; X/ o# A            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
2 w6 t" g" w) W* `2 h- |) C& d& ^        }: w$ M) X" ]! t$ @
    }
( b, B. X" ?8 _" K   
# Y2 I+ d" N) W# F    int Shrinkage::apply_cb()
) X2 o; O2 t' H8 l; ]& t5 T9 Q    {- O0 \& [3 t7 p: \+ C: F/ F
        int errorCode = 0;& s! q% k' @. S
        try
1 W6 C  |& [/ j  a- K        {
4 e" L" J  L7 W: G            //---- Enter your callback code here -----
; E; o6 A( A: b4 Y! V# q        }$ c! F- Q7 m, v% J; N- C! \7 G
        catch(exception& ex)' B% R0 u4 U% V% ~5 w9 K/ D
        {4 C4 @) b, ^# ?( j' z( _
            //---- Enter your exception handling code here -----3 p( `# D5 z/ M7 @9 M5 T
            errorCode = 1;& z' a$ [9 |5 S
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
# |) ]0 q1 `% T6 ]/ @        }3 i5 E& S7 q! {& [& X
        return errorCode;
: t0 e% d  e: V  k$ N    }
2 B1 @8 S1 P3 h+ a4 B  o# L: W( t3 |+ I
    int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block)- Q' [  r8 F7 T
    {
  q( L% C6 b6 U1 X        try
( E& {  q" v1 _$ w; G+ F, y        {
! D8 s" W4 {+ {8 p  V            if(block == face_select0)" ^1 r8 j& Y' c6 h5 i4 ^) A
            {% q. z1 a- P) `! D) |
            //---------Enter your code here-----------6 V, T6 T  A0 R( H0 t+ f2 X! }
            }
, y2 p) G; z$ K5 A5 z' E            else if(block == face_select01). _) D4 i5 Z0 o
            {3 p. N8 B2 S3 }
            //---------Enter your code here-----------1 e+ E- v, r- r) n% D/ x
            }4 f! N. f; c9 F6 h
            else if(block == bodySelect0)
7 g% W& H! _+ P( D! V            {0 _4 q5 D0 ~  j
            //---------Enter your code here-----------
# g9 M- W2 ?/ @8 X1 C1 n; r            }& y; B, _1 k& D8 o# Y5 m
            else if(block == bodySelect01)- s* W! y: |; u$ v: ~1 }" z
            {9 D  O1 a9 h% N! U* x( E( V, L
            //---------Enter your code here-----------( W. W0 a- ^9 P" Y
            }
; i: p# f5 C; l$ H2 b+ n: b            else if(block == string0)
1 ^3 Z* {0 X$ Y( Y            {
" l' G6 G8 Q8 N+ v  f) m            //---------Enter your code here-----------
  |$ F! F* `  ], f  G4 q9 A# p            }  b! m6 |3 f; W( J+ E
            else if(block == label0)
6 _% {( M8 x& D1 X! f; ?            {1 o( r) A5 J6 m$ Z
            //---------Enter your code here-----------
5 R/ f- V: g: n' @/ e1 [6 b8 s            }
: L' J8 U. e1 ]& G: D. v  |            else if(block == string01); m9 ]2 t4 V+ d% i
            {7 l: F: G" n1 n$ @/ S/ T
            //---------Enter your code here-----------" o: k6 y3 Q' `2 v6 v9 n
            }
) }: V0 y, c' x# f9 b2 e            else if(block == label01)
7 ^# y+ f+ S/ l  ~7 k: R) e4 J            {
3 u% s/ H7 ]% A            //---------Enter your code here-----------% g7 P! }( X: M7 A4 q
            }
0 }9 c4 n' L1 j/ G( ~            else if(block == label02)
: f- o) X  U' z: m9 D3 G            {
# D; h, x. r* ?* t' N( U. s2 H9 f! o            //---------Enter your code here-----------
2 o, _+ I6 Q& N            }
1 Q: x! w1 ]/ ]" F( U        }
2 [8 T% j6 E. o        catch(exception& ex)6 ]- m, j4 [6 ?$ q
        {" ~3 [0 D  Y: _# \) w5 n
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
9 w8 k; |3 N6 F1 ]) l        }* o& D7 l+ o9 q6 ~
        return 0;$ v, w6 y! o8 D8 M( q% V: J7 d
    }% p' G9 m8 S8 s( D" _
    ) c8 m: s% U. A- {0 H- r/ y
    int Shrinkage:k_cb()
. n3 P, u; J) C# T* j1 w4 v* F) X8 c% D    {
0 }" i4 X7 O: F, p+ |$ U; v        int errorCode = 0;
: ?5 L; b$ b# S+ z, o        try
; h. b' L9 t. O" V) H3 W        {
  ^4 w9 r8 i( Y  o            errorCode = apply_cb();( N3 W  j$ ~' b" C
        }
! R) J3 |7 G/ P+ z0 @$ ~        catch(exception& ex)
; h) \7 @, C, Q        {
$ m& V4 ]0 F# [. B            //---- Enter your exception handling code here -----( P+ N/ G! e, u7 L' ]' G( z
            errorCode = 1;
4 k: A7 y+ c" e, }            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());
6 v. k9 \7 {& H7 o; D3 X7 f        }
2 |* Q, d0 F5 z; R/ j  d! \% A        return errorCode;
3 {7 i$ v% ~2 `7 u$ a    }
( \4 z- R+ g0 {. S    3 o/ z9 v* B6 J8 R! g; r3 M. F
    //------------------------------------------------------------------------------4 W) [. D) w* Z8 `( f) e' D/ I
    //Callback Name: filter_cb
6 ?6 U, T4 T  l/ y    //------------------------------------------------------------------------------
' u6 E+ g5 b, [! }2 c; N    int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock*  block, NXOpen::TaggedObject* selectObject)
4 i6 U, |6 [) Z; D, C2 H    {& @3 v% Q# r# Y! e' P
        return(UF_UI_SEL_ACCEPT);/ Z1 `# `+ g3 }$ a6 H
    }6 t6 L# \* F4 u2 T
   
! B8 \+ v, R, ~$ U/ H7 C1 c- ~; |& s    //------------------------------------------------------------------------------
& u3 Z* K3 ~2 t+ A    void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
5 G6 h; B* |. y% v% x& Z3 z# S, s    {! R+ K3 j( D: O( }5 E
        try; g, a( M+ B3 l; O0 L2 B0 Y9 P  X
        {1 M  J) U$ W3 G4 R
            //---- Enter your callback code here -----6 `+ [4 R2 ~; b9 A; J! `( R6 V
        }, [8 k/ O! F6 s) L9 \
        catch(exception& ex)
0 \0 N8 N. `" J        {
& B  W; F$ Z: a+ y            //---- Enter your exception handling code here -----
" w6 F+ f% o% G4 g# [4 X            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox:ialogTypeError, ex.what());5 I$ |: R2 d8 |, Z* V
        }# y8 Z+ {" Y0 ?+ y$ W4 \
    }
: W. U- B2 A7 D" p6 }   
+ @* A. W  T0 g; @. a- Y& Y1 _    //------------------------------------------------------------------------------' E# I4 l; t+ G5 e4 O$ H* o+ I: f
    void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)  U) Z- D8 ]1 U- q- P( R0 h+ S
    {
0 h5 F: v) l' I6 n1 P, M        try
' k; C6 C* G, Z) a        {
. Q% f' |  @5 @; z! I! Z4 D2 o  y            //---- Enter your callback code here -----+ ]. ~9 q  n9 O1 v
        }
0 x4 R4 K5 c( X        catch(exception& ex)
, C  v+ r& y! `! G        {
8 u! r- B7 s+ l6 ~4 d* y$ p- F, Z2 j: T: I: p. }+ R
            Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());. L: y( y3 j5 x" z/ h5 ~
        }
! W" k1 e8 X* v* W    }
+ A" T% {6 J- Y, j/ j1 m2 y/ r
8 e% A' u3 t- R" _2 G  z
3 a  m0 `4 ~" T+ N2 ]
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二次开发专题模块培训报名开始啦

    我知道了