|
|
请使用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; [
|
|