|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 lzhyi 于 2017-2-14 11:32 编辑
) E, ~. n# J. i3 p7 R5 D% q) q6 M! F
请问出现如下问题,是什么原因:库缺少需要的入口点,功能名:ufusr
3 T8 Q. D. @. w& H5 r, y- V) X9 X代码如下:
6 J0 C% S7 }! X4 D' a#include "Shrinkage.hpp"
# a$ u3 Q7 B* I2 Nusing namespace NXOpen;% w/ Q4 s, U3 e, R7 ]
using namespace NXOpen::BlockStyler;6 y) O1 O( h& A; o
% P, v4 e. Q- x/ l7 \Session *(Shrinkage::theSession) = NULL;
1 C2 w3 k7 G+ R& L" wUI *(Shrinkage::theUI) = NULL;
h" _# A0 u" ?7 J2 `
1 x3 Y: P1 b( y7 z# iShrinkage *theShrinkage;
8 m6 D3 w2 I4 S6 Q1 E9 B7 q* i9 R) y; S# [ y, H0 ?3 g
Shrinkage::Shrinkage()
' G7 X; ~5 t- G. j7 e- u{
3 n/ D& U# r4 S try
/ J+ x/ v0 n" [2 B {
1 X/ a! }. r. V' d: ~ m D; A, r8 D // Initialize the NX Open C++ API environment, M% w; M+ R5 N; K6 f# O& \
Shrinkage::theSession = NXOpen::Session::GetSession();6 H5 H+ u* p3 ~& ?& n, W: [
Shrinkage::theUI = UI::GetUI();% j) ]& z) P+ R A8 A/ e4 \% [" q1 s
theDialogName = "Shrinkage.dlx";# S* U- z$ V+ Z+ f; A, K# Q
theDialog = Shrinkage::theUI->CreateDialog(theDialogName.c_str());
/ U p$ P/ Q B6 V // Registration of callback functions3 V) `& P4 c( ?% k, u
theDialog->AddApplyHandler(make_callback(this, &Shrinkage::apply_cb));+ S S9 o w" X( ] O3 @; ]& K
theDialog->AddOkHandler(make_callback(this, &Shrinkage: k_cb));% J2 f* V Z4 P! D2 `4 b
theDialog->AddUpdateHandler(make_callback(this, &Shrinkage::update_cb));
1 W. r6 D G+ {" m; L8 \5 E- z theDialog->AddFilterHandler(make_callback(this, &Shrinkage::filter_cb));
3 J; X6 f, |9 Z i1 G theDialog->AddInitializeHandler(make_callback(this, &Shrinkage::initialize_cb));
1 X! O4 B) p% I& N$ @ theDialog->AddFocusNotifyHandler(make_callback(this, &Shrinkage::focusNotify_cb));/ b. w) q; e N& X) k3 ^
theDialog->AddKeyboardFocusNotifyHandler(make_callback(this, &Shrinkage::keyboardFocusNotify_cb));
: f$ d Y) T& v2 B x0 f- v theDialog->AddDialogShownHandler(make_callback(this, &Shrinkage::dialogShown_cb));
6 k: d/ q) z; D1 B. F# d7 H }; t1 w$ W* U) E" ]4 V6 n
caTCh(exception& ex)
" r* o! e1 N! g9 D, Z8 Y6 M4 S0 e. ` {
2 a( z$ X; [! K. k- A ! _: q$ J8 u7 u/ ]+ X j
throw;' f2 s/ a3 O2 M* v0 D
}
( Z7 N% l, Q& X6 x4 T }! j; [+ y}9 m' N9 L4 k! @! q: H
' Y. }8 E9 j7 o$ BShrinkage::~Shrinkage()
* X3 n2 K7 Q" R7 ?3 {{8 k% T' u; v( X2 F
if (theDialog != NULL)0 U2 V8 W4 I0 |! d. @$ ^9 n' Z% L
{
$ [: q+ H- t6 h' J$ Z; _# k! h delete theDialog;5 A9 y2 P, n0 `, o8 ]
theDialog = NULL;4 \; Q. t' r$ K* _
}6 P- i2 \$ u3 }+ w4 l" P
}" w6 h5 n; v: K: v0 R
, t" C# V! T8 q/ t4 e
#if USER_EXIT_OR_MENU
8 G) \9 D" U; B) u/ M extern "C" DllExport void ufusr(char *param, int *retcod, int param_len)
; D2 s: h+ i- O9 V0 r9 [3 t0 S {8 V) |# J. G5 {5 |% @) {& S
try
+ y8 V4 h: ~7 ~ {( T; ~9 w1 j" I. ^! J1 k
theShrinkage = new Shrinkage();7 }( L1 C3 x# \6 m+ [7 x
// The following method shows the dialog immediately; ]1 t }" y# Y- Q
theShrinkage->Show();
- w7 z3 s+ V3 A% _2 h }& G( G- m+ \( P V, Q* K
catch(exception& ex)
( T) M7 h. L8 x9 I& z/ [, y) Y& @ {1 U* Q% ~- n7 L3 n' m
//---- Enter your exception handling code here -----
: C+ T2 s# ` i( F Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());9 u4 N2 i. `2 G9 \* G& B
}% N. D, S6 H( w) T
delete theShrinkage;
5 J9 W6 X4 X$ t) t, w R4 Q6 n }
# p* R% d' }3 ~! q0 \/ ]#endif//USER_EXIT_OR_MENU
8 T8 k+ d! D( ~; d#if USER_EXIT& u0 @1 N4 J' b: H3 o6 u
/ X4 n9 C6 K; _& g ?. M //------------------------------------------------------------------------------/ N$ s, v! L! L. c% E
* I9 d4 b. X. T$ c& L, i
// MUST NOT use this option since it will UNLOAD your NX Open application image
- B1 O( G0 p% U4 N' t // from the menubar.' c. H; v0 S# T7 D* o
//------------------------------------------------------------------------------
2 O( G1 H" v. g% `6 `7 ] extern "C" DllExport int ufusr_ask_unload()' p9 W+ h3 ?( I) N! C
{
1 o. O/ ]6 M3 I$ P% } //return (int)Session: ibraryUnloadOptionExplicitly;
+ E' G4 |& l! F# p- Q( b& z- q8 w* v return (int)Session: ibraryUnloadOptionImmediately;) |( M7 N7 x7 o4 z' Y1 k
//return (int)Session: ibraryUnloadOptionAtTermination;
" `: h. U! d9 R5 C }% q+ }% {# z3 O' J3 _ {
4 X* G: d6 @9 Z' N+ B1 S' H
//------------------------------------------------------------------------------" C" M$ K8 `2 Y, T
// This method is automatically called by NX.1 t( C0 g4 g. E/ q1 }8 _: _8 N
//------------------------------------------------------------------------------
" |# {6 F9 n3 y& ]: P extern "C" DllExport void ufusr_cleanup(void)
1 K2 t1 `, M! S5 ~3 V {4 Z2 D5 I0 Z0 k2 b1 I# I$ k/ o
try+ N2 H9 @4 e) d4 M- ~6 P
{
. s6 r. S" b8 @! \3 T; d5 k4 I5 N //---- Enter your callback code here -----" U' v' u0 _2 K! R( \. m$ j1 D
}
) ` v# I ]3 t+ ^# A" } catch(exception& ex)
0 G I' }* P! t4 r `2 c. p8 d {2 Y; c/ F' {! N
//---- Enter your exception handling code here ------ k) f( ?9 p: ]2 P
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
/ Z+ v }& }7 ]# R- q }
& [& _- a: Y$ H1 h e: e }
0 \$ U, i z" k% H7 w% w#endif//USER_EXIT0 G4 e4 n' ~: k1 v. `
. [4 Z1 m" M8 G& i" w4 Y' | int Shrinkage::Show()
/ f* X* Z. K$ k! u5 f {- [. ^1 Q3 Z8 Y- G q) k' k
try8 n1 C- v+ u8 b
{
4 r% p* F+ |. z+ F' b theDialog->Show();
$ R" a2 u( y' Z, h: t- Q' ? }
6 F( f& a, G9 W5 h catch(exception& ex): W% X* {/ M, [- x6 r) \
{0 T1 Y0 s- U' ^# f6 ^# `
//---- Enter your exception handling code here -----$ H: p' |+ i# q$ F( _, i1 H1 i$ h
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what()); J4 H/ a( r' O6 J& T5 B
}
' E0 H5 `% e, q0 v return 0;
) M, M3 [: _1 \. Y4 f }# l% S' Q$ q3 L# O* j
$ n& r% y$ \3 K! C& n, A
#if CALLBACK
3 u3 S4 u# @/ y* w( R- J- w# v- q/ N- F1 E0 X
void Shrinkage::Show_Shrinkage()$ d. K# d [; p
{
$ F3 s0 J U H* ]7 f7 c( z. \ try* H' Y' U8 K3 d) R# K2 v
{
* ^# c/ ?3 f2 U$ M theShrinkage = new Shrinkage();
f X! M% ?1 F5 Z4 N! s! L! C6 Y" q2 x# f4 b! `/ |$ I
theShrinkage->Show();# B) ?4 O/ @. n9 q
}
! Q6 E, E( c+ o P! y: k catch(exception& ex)( f# ]8 |3 d5 s- r
{( k5 B% X/ ]$ q) ]( i% B$ U t
% H; d* x8 n7 y2 v
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
2 {% {* {, c1 ] N7 D. j, _* n- i }+ {9 o/ g! i* l4 ?" u1 d
delete theShrinkage;' K! x# R: x ^% ?
} g$ Z8 J; w( \* B$ H& u
#endif//CALLBACK P1 U! L: t4 ?
3 G: `5 j3 d# ?/ r2 z void Shrinkage::initialize_cb()
& J! E% G2 Y0 o' {5 h {/ F, Z% C5 U2 @4 _5 p& G" P
try
2 b& O3 ^ ~& k# Z! C+ ]) ^4 i {, N* v7 E2 t1 I# R
group0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group0"));
9 ~" K- v+ A/ |: g3 ? face_select0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select0"));' C( {& }; D! ^: {5 y! |, b
face_select01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("face_select01"));
- N" J' p) S5 U4 q1 h3 ]* q- I group01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group01"));2 S$ o# b$ A" q8 s, T: K
bodySelect0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect0"));
# N$ C( Y4 `+ }9 y$ p bodySelect01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("bodySelect01"));
- T) t/ x7 [4 R0 t! n% q group = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("group"));$ _' }4 T# a* }! }+ I- w
string0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string0"));" A5 k0 ~" z: h4 _. v
label0 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label0"));
1 |; X5 p$ q, [' \ string01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("string01"));; l9 P/ H8 {# ~9 G% X, A* h* K
label01 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label01"));
/ ]/ P/ r* ^2 p; D0 A label02 = dynamic_cast<NXOpen::BlockStyler::UIBlock* >(theDialog->TopBlock()->FindBlock("label02"));
9 R' E3 c( `+ i7 P. K$ Y }
0 I4 q. l* i9 i catch(exception& ex) J- ~. Q' I% b4 o( ?! E: m" e
{) w; E: D" P6 f% H7 o
- Y$ x% S# }! O" ^# u, t Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
& P( B( X" } V( [; j* v4 F }# ~* H7 s9 d1 I( ?# _2 T
}9 S. I- h7 u' r9 x
//------------------------------------------------------------------------------
, B9 H! z- e3 R/ _( A! z1 W void Shrinkage::dialogShown_cb(); a7 [- O! q$ F8 `( i: N+ r
{
1 m* M j( ]5 D3 C1 Q. h, V try& {' p% ?) ~& X% n3 a; \5 g0 W
{
/ F3 u4 A9 i# w9 c: @: H) K6 ^ //---- Enter your callback code here -----) j4 I! b& N6 `$ B! ^
}$ z9 y9 X$ L0 }; F. @6 ~: u# c3 p; C
catch(exception& ex)6 P5 {3 N' d7 f& ~4 `( s- T
{0 T0 ?7 V5 M, K4 x3 C
6 L4 n# b& t" ~% h" Q; w8 Z# _
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());4 g: ~; e) B- n g- N- W1 G
}
/ a: B) n; k6 J! T7 c) R }0 B, X, N4 k) Y5 ~2 E" ^8 h. l8 e
# C, {6 j' p# S e- m$ n6 ^ int Shrinkage::apply_cb(). z5 f+ q2 e9 R6 w# B) C& _' f$ K
{
# }1 H; r/ j; V int errorCode = 0;! e( B+ _* R" m% }. i* [( R- T9 U/ z
try
% w9 g- e4 y9 I, K2 Z- g# F {
, j ?# L- B! Y$ [ //---- Enter your callback code here -----
, V. \- z3 A F) X }* E6 I7 F+ f' o$ G
catch(exception& ex)
G' S6 F# P- u0 B {
8 p8 W6 k' x J- ?' l //---- Enter your exception handling code here -----; S% Z8 Z9 ]5 C$ `$ y6 A
errorCode = 1;
: z; A5 f' p/ \" h: _6 X. B Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());2 g/ l7 ^# b- [4 l, T& b" y
}
, v% i; [. O+ h return errorCode;
& x4 ^! o8 b% o3 T }/ o! K/ G1 e0 I1 G3 D
$ j) m( w: J; o$ K3 b
int Shrinkage::update_cb(NXOpen::BlockStyler::UIBlock* block)1 M. Q5 F L) {) ^
{
& `7 A3 i: n/ w3 X. h( ` try/ e$ S0 X" N& k2 x0 i. S
{
; {5 q( W5 }4 \" h6 `0 } if(block == face_select0)
( h' @% a. u- e$ Z d {
/ }5 b; H# t' Y0 ^ //---------Enter your code here-----------' l/ N. J6 s7 A) k* ?" @# i
}. y* t6 F3 \: u/ F( }! d
else if(block == face_select01)
& Y5 X$ `. L2 n {. @/ U$ l. y8 R( ^1 k# k- h( `
//---------Enter your code here-----------
4 A N2 Q, z) [& S1 @ }4 g. C$ K8 H* w: y) E
else if(block == bodySelect0)
1 q7 [& `7 V) d, k: b S! y {
# L+ ^6 F6 `8 X& H; J' }) c1 h //---------Enter your code here-----------$ T+ w) A( Z/ C& @# d
}+ i. r9 S4 U! n5 Z( ^
else if(block == bodySelect01)9 q" L$ S" @+ W# Q3 F" G& R* G9 q) o
{$ s# }6 j! m5 k& N) r( V
//---------Enter your code here-----------
! G: b: A# n2 a+ t9 K) T' ^ }6 i$ {" @% f$ B8 L5 s
else if(block == string0)# t8 P, o1 R6 c, Y
{5 R( u2 n" [% h4 j2 n" \
//---------Enter your code here-----------
1 ]2 b* ^# I/ V7 Y6 N/ U' M3 f$ ] }; v4 K: e) C r! ]
else if(block == label0)
( v' g- w& n; { {
0 N+ j, W ^. V6 b4 f0 B& Z //---------Enter your code here-----------
6 a; C% j& W' H }, _7 _& ~ @7 ~, G
else if(block == string01)
, X: e2 w- t, r% b$ K' T {6 u+ `6 _- \# x: ]" V
//---------Enter your code here-----------: O: r8 v+ F( \7 S2 U/ c" }
}
4 p8 \, ~5 P! a: m" d else if(block == label01)9 R5 _' {/ p3 X* ?7 I, v
{
3 _/ A9 U# B8 y. ^: w: c- Y //---------Enter your code here-----------& \, C) s) N3 \, p: C
}
; b Y' o0 C# k. F- J" f else if(block == label02)- h. Y) ?. Y! b
{# J# H; R2 `) E" H, D
//---------Enter your code here-----------
$ X/ K/ k: e Y( f( r; ? H }) N2 v$ u8 V1 l4 v& e# x# R" Z
}, F& Y6 t) u1 S2 W# R( O3 U& t# |
catch(exception& ex)3 p' a& ^" y6 n; J; ^
{' d, U q0 V1 X# f$ [
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
6 U* o1 P: p* R8 P( `+ F% B }
4 ?: f) ?. B# E) |& }" h* { return 0;' z# Q2 |9 O4 B6 w, j
}
9 m: j$ }, W, d+ h8 j0 M7 a9 L8 d& a
4 J9 [8 U/ U( `8 U! l# @ int Shrinkage: k_cb()& b- v6 }" i; a+ Z7 P6 I9 I
{
* ^: H/ h, X R1 q, a4 r4 k8 P0 O int errorCode = 0;, M# Z4 R, R$ l" J9 Q) w, |
try
3 x3 k6 G( H z, y* B {3 B4 s9 {/ C$ O+ ?5 [, H+ K9 O
errorCode = apply_cb();- c% M% \2 t, G) J
}2 c( ?4 x6 x8 R, e+ f2 \# H) S
catch(exception& ex)
& a& K: |# ~! ^4 d/ g1 D2 Y {
# F( ^$ W" A2 ?& X //---- Enter your exception handling code here -----1 L" {. s- Y; p2 D9 H6 \3 q0 r) t+ }
errorCode = 1;+ o6 J/ z( a4 h* m, s+ g
Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
/ i. ?. a' `8 u- I+ k! c }7 r: Y5 ~1 K2 T, ]5 }
return errorCode;
6 r: O3 y6 g( s( ~. L0 { }& T) A1 C3 L3 v- y
5 x( t6 _" ]% O //------------------------------------------------------------------------------0 ]- o1 t; H% }% o
//Callback Name: filter_cb
( s8 @! L! M+ J //------------------------------------------------------------------------------
' Y- N1 t I) i5 C; I) i int Shrinkage::filter_cb(NXOpen::BlockStyler::UIBlock* block, NXOpen::TaggedObject* selectObject)
; ?2 V' m4 j- s {
2 V+ d% F; F% \! D return(UF_UI_SEL_ACCEPT);3 a0 z+ q4 ^* h+ q m. h# g1 I* N
}; J9 |2 @/ b8 y* K6 A8 A
- u/ g& L1 d0 J9 Q" a& a$ S
//------------------------------------------------------------------------------3 \ K0 w ^% d1 s- X2 I
void Shrinkage::focusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)
( H7 g: U- L0 e8 q+ G- S {
) c! i, I9 x" E: c- I try1 x9 { ^& K9 q3 K D" B# w
{5 O Z% p/ X) E7 {0 u8 s& X' N- k
//---- Enter your callback code here -----
8 C4 l& I" g$ h$ F8 H" f: U3 M4 F }9 L" ^9 F# Z2 J9 d \1 U5 j
catch(exception& ex)+ W) L, E a; G! l9 \0 U$ k. y
{) Y) w; u6 U0 X p9 K) h5 I2 `
//---- Enter your exception handling code here -----
# e* O: ]4 `9 c7 q1 X Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox: ialogTypeError, ex.what());
# B, Z% ^1 X0 Y+ c+ s+ n }
" u0 B3 @ Q* i5 v$ G3 m( s }& t7 @# @/ ~4 A$ i0 }
; P) [5 z$ ^: r! G9 h5 }7 q. |
//------------------------------------------------------------------------------
0 W7 h; ]2 I2 F void Shrinkage::keyboardFocusNotify_cb(NXOpen::BlockStyler::UIBlock* block, bool focus)) {1 o. R& _8 M* w, y
{6 m O) y9 E# t5 Z7 c0 E
try: m* H8 R4 {* W# h5 `4 p
{5 f7 B% y- ?* g% m0 l4 P
//---- Enter your callback code here -----. g$ P8 N0 K: ^4 K5 f, b+ c/ y5 A
}
& t, u/ y. ?3 s3 f catch(exception& ex)
. _0 l+ {2 Q& `5 `- m3 e: Y/ W {; t4 g* D. P- j( V4 c' S
) _# a) x0 m' N- t j$ z Shrinkage::theUI->NXMessageBox()->Show("Block Styler", NXOpen::NXMessageBox::DialogTypeError, ex.what());
# k2 D, e# ^8 g. R }
4 J1 y7 |1 J" o9 \- q }( L% `9 y* m* `1 ]( D
, h) C- w& c& Q! ^$ G& X" u
5 j1 r) z) n6 E( _ N$ Y I- @% q5 @+ q
|
|