|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 lzhyi 于 2017-2-14 11:32 编辑
7 v4 U# X- F1 \5 f1 Z J2 I% R) ^# q7 e2 [7 ~& y- U7 I
请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr
0 x5 {& _" [0 t3 `% z. h代码如下:
+ R1 r, x: x/ ^# y#include "Shrinkage.hpp"
# v9 F1 p, n1 h0 u0 K2 susing namespace NXOpen;5 ]$ Q4 _, w1 s7 C' ]! K
using namespace NXOpen::BlockStyler;
! r& Q4 H+ \* n
% V4 {' R* v. c/ h8 L- W/ ^) CSession *(Shrinkage::theSession) = NULL;
( c6 C/ {, R, j. rUI *(Shrinkage::theUI) = NULL;! R, g5 z Q6 q; r, v
0 G) M! S+ N- L7 |9 u$ x4 |% ~Shrinkage *theShrinkage;
1 V B: G2 |$ q& z- E7 t8 X* q
6 c) O7 ]2 f6 }Shrinkage::Shrinkage()
. \, t, n& r" Q# {- f0 [* ^; k$ o8 v- V{& e& R' U* C5 I3 P* L9 b
try
1 E' ]; E+ v7 x0 M% a3 }+ S9 I- r {5 J6 r: h7 q+ x: X- G# U9 B
// Initialize the NX Open C++ API environment8 K& h0 n! D3 @' f5 C1 H( V4 {) L z3 F
Shrinkage::theSession = NXOpen::Session::GetSession();
1 x8 p, [! B) V' Y, K _: \4 q$ M Shrinkage::theUI = UI::GetUI();
2 C, E: X- ?" M# Y$ l, q0 @) Z theDialogName = "Shrinkage.dlx";: Y* g0 G1 E- } _
theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());, m2 H' d& `1 c& M
// Registration of callback functions
% U$ M3 h$ d6 g" \- R7 K theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));2 `5 _( F: ~! o
theDialog->AddOkHandler(make_callback(this, &Shrinkage: k_cb));
4 W, p( c' ^2 k% y' Z+ d. c theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));
4 w" N1 k8 u0 c; P4 u4 Q, ?" f theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));% t4 n: n |, D
theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));
8 X/ [# o* z c2 ~2 Q3 V theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));$ b9 F5 D# m; ~5 Q6 {/ v
theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));0 W5 `2 Y+ ^3 R- t
theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));! m) }+ p% n% n9 N( d
}
; S v& s1 z; p) _& X caTCh(exception& ex)
" D+ x1 C! m0 ^% o {0 G% P0 @! w. e/ ^; `" L- w; x' v
$ j/ x2 f/ C0 \$ Z6 e" y
throw;& d' f! `& _* y
}( P/ a# R/ E0 j2 a, @ o1 s
}+ B& |+ k& ^- Y D: S @9 Y
P9 T: a. D4 L* N; p. d7 K8 i
Shrinkage::~Shrinkage()
4 d4 }7 l. a3 B; w; N{
) q# s4 v! z, h) { if (theDialog != NULL)
& \1 I2 Z- x/ d' u9 x! X {
6 F* {- a% H) A8 C# ~/ z' @ delete theDialog;
' V! o2 _4 `0 f3 e0 g theDialog = NULL;
( ~5 \; P- u- k- f* s' ? }5 @/ h& F0 j: I8 l; v
}: W) k* y' N: M3 U
; ~9 v$ B! Z j; ` v" I2 T' ?
#if USER_EXIT_OR_MENU! `4 m0 w4 I+ c. S, H4 z* Y
extern "C" DllExport void ufusr(char *param, int *retcod, int param_len)6 w" p( Z! y7 `5 Z( ?8 u3 p
{
& Y2 N# q7 z+ x- a try7 A) R7 ?8 u& y0 g
{! a! K4 M! g. W r) F
theShrinkage = new Shrinkage();6 J: ]: i4 z( P: V- C9 l |$ r1 f
// The following method shows the dialog immediately3 Q. g0 K/ Z: A: y
theShrinkage->Show();
?( B6 l: |8 M- v" j }. y3 J" u" i8 x+ R4 w; t) U+ c3 \
catch(exception& ex)
+ m. Z2 c2 C6 S, \4 R" l, Q* Y: Z {% d# e8 l0 Y N
//---- Enter your exception handling code here -----
& {! j& A# {* a- C' u8 b x2 \ Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
+ l8 d% d, w. }' s: k' T1 L) } }
y+ g7 a% q- K1 a/ w! G8 W0 I$ m# j delete theShrinkage;3 Y; Q% E7 Z8 p+ ]$ n8 k e2 X
}6 [# M6 q* s% V4 V
#endif//USER_EXIT_OR_MENU
G# L5 H d# x#if USER_EXIT
' H4 Q; z4 A- m$ ]1 O 1 q8 r/ d1 ?# \
//------------------------------------------------------------------------------9 n* E9 q1 l; r' A: \7 H* F S
; a% i9 y o5 S c: x5 r& X- g& Y
// MUST NOT use this option since it will UNLOAD your NX Open application image
2 s) {# x# ^" f5 L4 |0 r! w // from the menubar.$ J2 `+ e5 [$ B Y! A0 X& \
//------------------------------------------------------------------------------
; U ]/ y+ g# Y6 |+ b3 M1 |, f extern "C" DllExport int ufusr_ask_unload()6 h. V4 B8 B+ o5 `: c" M
{
1 S P2 \1 z" e7 O* A* X5 M) Y //return (int)Session: ibraryUnloadOptionExplicitly;( R/ S& `* @( U" z( b
return (int)Session: ibraryUnloadOptionImmediately;
( t( M4 O1 ]+ H- d8 O //return (int)Session: ibraryUnloadOptionAtTermination;, S! S4 L4 v& o- g; ?/ y8 o
}
7 }( f" ?6 `5 q/ c% {- Y & R. \- _% p4 s4 ]6 t
//------------------------------------------------------------------------------0 E7 V8 m/ s5 h! ] q2 l* w& f- F7 m# z
// This method is automatically called by NX.
" i4 z4 s1 L- v6 a1 t: w& A) l4 T% ~4 z //------------------------------------------------------------------------------# G2 L; X/ z: k- }# X. P- c
extern "C" DllExport void ufusr_cleanup(void)5 K& c* r1 g2 M% Z. w+ q6 j
{
5 Y& q' H+ i& V. B try
. I. h, |1 @' p. P% C {
6 }- j6 s5 M9 e; a, C7 C //---- Enter your callback code here -----/ r0 h7 S9 S" ~& Z: ]2 g; ]0 Q* Y9 x: f/ b
}' D8 W b2 T) C$ T- F
catch(exception& ex)
( A' P5 o; {" _& b' R {
n6 w6 V' x: e4 W6 } //---- Enter your exception handling code here -----5 |# @! m( p1 ` H! ^! W
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
8 A+ B, B' n: e% I4 a' p } n6 g8 J5 \* y! A# b9 R" s O' B
}5 [. E, X: Z( y/ k: t
#endif//USER_EXIT
$ U! o$ x7 e- n( ?; c
3 G4 x* T6 w: Z int Shrinkage::Show()" }6 P( B7 b6 v8 }+ \. b
{
3 t5 L. z4 t0 {5 X8 U0 l% ~ try5 a a' f% a1 }% s
{ n r* J( t: K9 D+ n
theDialog->Show();
" S0 x% u, @9 x; V3 r- |. l }
# _5 J. ?4 L' k7 P+ r( ]- Y catch(exception& ex)
/ F; \, f- P' b/ ^* ] {
9 {/ W- a3 D; F: e, R# C //---- Enter your exception handling code here -----
1 W, c, [7 e0 d& A Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
! F G2 C+ L5 C2 Y( ?9 q9 r } V; l* N+ o W
return 0;
7 H& }3 n9 k7 e }$ I- r" B4 N" x" T; \
T$ W1 u0 @# _% v( D A$ Q#if CALLBACK
6 q; ]7 t& \ h% q9 e0 j; L/ W% H$ m b' g; n2 N: s
void Shrinkage::Show_Shrinkage()
1 F/ a6 t/ B) Z& c/ |5 x {
( w1 d# u+ w8 q) X" ] try
% ?; d8 P7 p7 g {
" Z! _7 |& k: X& R+ J$ [) ? theShrinkage = new Shrinkage();
R8 d% j. J4 |' O: }
Y t1 z. ]/ k- S theShrinkage->Show();& f: B' P9 V/ f0 ]6 b
}
) E2 D2 \/ M* e& Z9 j catch(exception& ex)( \, z5 z( {0 V
{4 q9 d5 n* X! s2 x+ s
$ u2 P( K9 Y8 p! m Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what()); K( p W# f4 P' Z( J
}$ J' K4 r N0 I
delete theShrinkage;4 \2 z- T2 I+ k: X" ~! u) V. ~# Q7 |
}' {" L, B A5 ]$ V
#endif//CALLBACK+ ?* r' y7 `6 M7 A4 l
2 ]" E- E4 e# m/ S* k7 ~ void Shrinkage::initialize_cb()
' [+ `6 d- h& Q0 N: H1 _0 v5 }8 c% W {
8 m2 l K" M, d0 z) l try. [, O( }! s c
{
% o# e7 V" D5 X! { group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));5 X+ p1 g: o1 t) D- Y. ^8 H# Y6 E
face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));3 D$ w& b) X' d3 i
face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));; `; Q) R f/ a9 C8 a4 M
group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));! f7 `0 c4 w. R8 U
bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));
1 g. ^" J( o8 s bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));( x4 [; K/ J9 i9 r2 F
group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));& ]- g( B+ A- p, g: b' ]
string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));( D0 [ Q- D% w' V8 ~# m
label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));- ]5 Y- r3 B; k0 c, a- i
string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));7 m: R- X/ O' O" o/ d7 K
label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));
* M; `0 H7 k4 u1 M7 z* U J ^% N label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));
, ]+ o E/ u& _3 ^ }
" Z, e; f; }, g5 s% ]9 H catch(exception& ex)$ t; M! \+ U$ y# x3 C v' D
{
; V- R* J% u$ b# l* a, s4 p& k 5 y0 \- @2 Q1 H- Q
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
& s$ j9 V+ v" E7 j' U/ F }
! m0 R4 C6 G/ o) e }. P4 X$ P& W( z3 h% G. Q
//------------------------------------------------------------------------------
6 V3 Z+ Q. V h/ | void Shrinkage::dialogShown_cb()5 x+ I( F4 W/ F
{ A6 {( e/ I- \6 b
try3 X5 a) Y3 P/ ]: E3 \+ G
{
0 g! B, }2 b9 S! b( C, G6 U+ J //---- Enter your callback code here -----6 O* t5 I" e' Z, P; o4 S- }. X$ e
}
0 R8 h# Y( Y& V N0 b catch(exception& ex)
5 X( ]' p! @& g" |) @) s/ ~' C6 ] {
: a9 I# U. b0 c* D/ y* u! Q5 J! G6 g# `7 |
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
4 h6 L/ F5 j. W }
w+ w+ }1 c7 a) S% w! W }
" J( s7 N9 o( b o( q& x
% d3 `; K8 j- {0 Z. c4 M int Shrinkage::apply_cb()
* ]3 B0 j" g$ v5 q {3 ]" d3 \+ X2 m
int errorCode = 0;
$ Y) u5 ~! I! M5 P, } try
T8 e2 m0 a6 B {( K: V) } C7 X
//---- Enter your callback code here -----
# b8 @% w% M6 Y- o( q% T7 w/ p }
5 F0 K$ K* k+ K2 d2 r% t catch(exception& ex); j) ^, L% F9 o+ F
{
0 ~/ Y" @& G/ k* F, q( K //---- Enter your exception handling code here -----
% _/ _7 j9 `: i* C4 Y( g" P. B, m errorCode = 1;
|0 W3 y0 g1 v* F2 I e: E Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());! X6 S- Y6 L- A: X! i
}
5 f8 ]' h7 x7 f% k* V! y return errorCode;8 C* T2 H" g6 F1 C7 \# o
}
6 I2 \# T1 {) i( ^# X( G- p* o2 C4 p7 _2 p' D* V8 t% E2 v* Q8 i, _
int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block)$ }+ S+ o& f/ k2 A
{; y; `7 t1 K+ T& a2 e
try
" n3 v0 a# a+ ?. p" G$ A7 s% j( i {
5 ^# a p% N5 h% O9 v; p, g) t if(block == face_select0)
5 C& L* f0 O% l }# c {
6 m1 ~; }/ R! r. t7 X //---------Enter your code here-----------6 ^3 ?! N& O J% ~- J8 U
}
6 i% S0 i6 @8 b p2 h2 S! o8 ]0 Q else if(block == face_select01)
/ s' a$ l" x6 ]( K {
. ~- o$ y+ B; A6 S1 t' O //---------Enter your code here-----------8 L- T4 z7 W" W% j% v, g5 Q
}/ f8 P( T; C& K/ R7 M' j
else if(block == bodySelect0)
/ D' @; k! P( G, E {% M: w2 M- p: N w2 g5 N7 H3 x
//---------Enter your code here-----------
' V4 B3 @0 n. z1 @5 W5 o. E }
" r: G; m* Y+ K7 B; c2 F else if(block == bodySelect01)
- P7 s# f0 ^7 k* G {
* i- ~# D0 n" F$ n) Z0 q& D' q //---------Enter your code here-----------( _7 T7 v% N" F |4 B
}& @) o; G' P1 Q8 k- b2 x" f
else if(block == string0)- z+ E7 s6 a* d. v( b1 W
{, \ c( h1 M% {+ l% d6 r* }, q
//---------Enter your code here-----------/ C4 n; ~" C( V4 g- e" {9 h
}3 N$ r+ v* d" E+ [2 _: u! W* i
else if(block == label0)9 Q5 N2 d' c' X* s+ k( p
{, m# l# k4 j0 ^3 G& C
//---------Enter your code here-----------
5 X4 l! W* e( Z! Z5 @/ j) G3 X }
& D% ~8 g* C0 G5 a else if(block == string01)
5 e$ F5 R, a, ~ {5 k$ F( p2 U$ q" }6 w
//---------Enter your code here-----------& B" [' k' r, m
}
- e) J5 c+ d1 H* V. H1 p else if(block == label01)0 B `3 V: Z. R0 {
{0 p* F+ p% U9 @
//---------Enter your code here-----------
4 t: t4 s' s/ M6 m }4 r) ^8 l; C6 f3 E% a5 f2 X) _
else if(block == label02)
/ Q" d9 k. G. S) w7 Z {
4 f7 ]* q5 X* e4 V- g //---------Enter your code here-----------; e# I! E# }9 H# H
}+ ^# b b2 f, V! M/ @' K, H
}. s9 X: y% [5 L9 x; Y
catch(exception& ex)
% K5 J3 u @4 p6 a% x( p# s) } {$ J+ I* I1 [* z# D
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
' G$ u/ K8 i; ] }3 E9 L6 W! L0 I
return 0;) Z$ j* O: r. n' D6 J7 v ~) |
}' y, b3 D# S+ z
6 P- s" _6 W2 G
int Shrinkage: k_cb()
4 d( b _( T) j7 H( J {
& F0 ^) z9 w" `3 H; Z int errorCode = 0;
1 C3 f5 a+ r( H% z2 @- Q2 V try
, `8 I8 I9 s& }7 D7 { {8 F7 ]. }0 Y/ N/ S/ o. j
errorCode = apply_cb();& P1 n r; H% O, L) s' j$ F
}7 Q0 |1 b8 _$ s& p. e7 S9 ~0 y
catch(exception& ex)
# F( y! z. q/ X, H4 N4 a- } { s/ p% f6 s% ] c2 I8 E
//---- Enter your exception handling code here -----7 ?* y5 O' b9 P* B6 U1 b
errorCode = 1;
; ~: i, C% Y" k$ _) E% r. z# _) }4 r Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
$ C' p% v; @7 e3 I* W; A" |' h5 ^ }5 K6 q% c% C2 M2 P4 |
return errorCode;
% S8 }2 u& D# _3 B+ E6 i }7 z. `( m: L! q) K! z+ i9 r
8 v8 m8 Z8 t, X$ g4 j5 s& Y/ A
//------------------------------------------------------------------------------$ n5 h( H- M" S6 ]3 z* u0 S8 B2 I
//Callback Name: filter_cb+ c r7 s! e Y. s; e5 Q, c: p
//------------------------------------------------------------------------------
8 r) i) W7 b, n int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock* block, NXOpen::TaggedObject* selectObject)
2 q6 N; r/ j* z* Z {9 b7 _- M0 m9 d$ Y. V
return(UF_UI_SEL_ACCEPT);
* L1 D2 c: f; v" f) D }
- T8 c# B6 j2 W& N/ Z ' u% F) h8 v; K. T: v
//------------------------------------------------------------------------------" b( O4 V# L! W; e2 Y8 Y* r
void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus); |; b% }$ M+ k
{* } l4 z# h5 b% }" J' E+ p
try
- o4 [8 f) S7 l# n$ y) A {
$ S% E1 ` L2 Y V //---- Enter your callback code here -----" s) [# S" R6 W* o5 ^
}
# ?' ?* m$ i' |2 d) r catch(exception& ex)- V6 P% F8 s) g+ y) [1 ^
{: `# b3 U9 v4 e5 K, q
//---- Enter your exception handling code here -----( d. H( R) x) e. G$ _
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
4 l6 L& B0 N; E& n }
# W+ d$ B8 c! L4 n }
! ]. e; l% w2 }1 T) P! w) j8 o0 B 9 t& u3 n# U7 ^" t6 _' L) x
//------------------------------------------------------------------------------- z! ^! K2 {$ s5 `9 f$ ]/ ^$ E
void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
6 _# J0 p ]8 ?" } {2 s, Y& O" {9 F, j9 R
try" [- l& K2 W" o$ w+ l8 t
{
2 b7 P- Z9 j1 h& q/ c //---- Enter your callback code here -----4 u5 D! s8 b) H7 o+ R% D* U
}
/ Z7 [) m! ]; ]# {# _6 I catch(exception& ex)4 {, r+ o; p1 M# J% F( H( p
{
6 W7 @4 G4 H* p0 L( j# z/ k: M, B& b# D2 P A+ {' j3 U7 [
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
( w$ s9 q: _( A1 } }* p. T& O& b0 w, {5 d
}
- `5 E- h2 ]3 K5 g# J3 V0 T1 q' N; J
& @, s1 @4 X3 _) N C- d/ |/ Y7 @+ b- t u
|
|