PLM之家精品课程培训,联系电话:18301858168 QQ: 939801026

  • NX二次开培训

    NX二次开培训

    适合初级入门或想深入了解二次开发的工程师,本培训结合ufun,NXOpen C++,大量的实例及官方内部的开发技术对于老鸟也值得借鉴!.

    NX CAM二次开发培训报名 NX二次开发基础培训报名
  • PLM之家Catia CAA二次开发培训

    Catia二次开发培训

    Catia二次开发的市场大,这方面开发人才少,难度大。所以只要你掌握了开发,那么潜力巨大,随着时间的积累,你必将有所用武之地!

  • PLM之Teamcenter最佳学习方案

    Teamcenter培训

    用户应用基础培训,管理员基础培训,管理员高级培训,二次开发培训应有尽有,只要你感兴趣肯学习,专业多年经验大师级打造!

  • PLM之Tecnomatix制造领域培训

    Tecnomatix培训

    想了解制造领域数字化吗?想了解工厂,生产线设计吗?数字化双胞胎,工业4.0吗?我们的课程虚位以待!

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

Teamcenter SOA开发中关于变量声明,转换等代码的新处理方式

[复制链接]

2015-2-3 09:18:14 3358 0

admin 发表于 2015-2-3 09:18:14 |阅读模式

admin 楼主

2015-2-3 09:18:14

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

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

x
Teamcenter SOA开发中关于变量声明,转换等代码的新处理方式$ w7 c3 n; q' K1 T% C
5 W% H0 U* k0 p
  ?4 R9 i; u, A3 F
1 变量声明
! f, R$ f1 E8 ~6 }7 B& W( i( W0 f: i. R
% k+ K2 S6 X" F3 ]1 [

2 U. X- j- x8 p1 b2 ~. {o Old way
8 q4 P' y3 P: U& K1 B0 f  e// Declare pointers for an Item, Form and vector of ModelObjects
# j: ]$ ^: l/ U- E// initialize to NULL
4 Q6 z! }7 K: E5 \5 PItem *theItem = NULL;
) d5 F6 }- ]' M3 E6 @% H* K8 @Form *theForm = NULL;
$ X$ h2 h. d! ]$ A) u8 x$ h! \vector< ModelObject *> objects;
5 a, w" W6 U- m, _1 e1 t$ X& V4 w...
1 Y. `5 ?* c/ B// Use the Item5 f) m8 P% l0 N) l) m, p. z, ]
theForm = theItem->get_item_master_tag();
- U+ k. w; l  [- Z" z4 oobjects = theItem->get_revision_list();0 H5 G% B+ u4 V" k4 ^5 e- Q/ f
o New way( O5 k3 H8 q/ |) {
// Declare AutoPtr for an Item, Form and vector of ModelObjects  P; T  x, T0 g: F
// all AutoPtrs are instantiated as NULL
& Z0 a. V' z" }+ P: ZTeamcenter::Soa::Common::AutoPtr<Item> theItem;7 `- ?  f. k2 S9 s& m
Teamcenter::Soa::Common::AutoPtr<Form> theForm;
6 @4 U1 E6 W/ R. S% Z. Mvector< Teamcenter::Soa::Common::AutoPtr <ModelObject> > objects;2 a9 w2 A* T$ m
// Use of the ModelObject variables remains unchanged& [' }# [7 k# p% V0 I9 A6 I& O
theForm = theItem->get_item_master_tag();
2 [  w) p& n9 o# V4 |" d& R4 ]objects = theItem->get_revision_list();' \- E& q. {/ {; W

1 a5 P8 w' W( e2 Q+ }  o; u$ B1 V, D" h  a$ Z% P, N
2 类型转换
" m* G8 a# S* Y5 Y7 p7 J0 h" h* y( \/ P6 J/ @1 e
o Old way$ D2 {) k8 X8 c: W% J8 U
// Declare the variables% W; w6 X- ~* y0 ]3 _3 n3 y
User *user;) G9 x0 v7 n, G0 ]
ModelObject *anObj;/ |1 d$ Z  o5 a4 a& u! g+ |
Folder *folder;
+ s; w( h# ~- O- Tuser = sessionService->login(name,pass, “”,””, descrim ).user;
4 u& y* b' i" u' \4 z8 j// Cast to the base ModelObject class
! K/ T8 E( P' j: K! h- QanObj = (ModelObject*)user;
7 ]  g$ |/ I, f6 x% ^// Cast to a speicfic sub-type, if not NULL& a/ e4 k- c( ]1 S, X5 t
// do something with the new pointer% P' u. E; P' E$ e/ v& W4 f9 z
user = dynamic_cast<User*>(anObj);; a4 a1 o. W$ X5 [
if(user != NULL)3 l$ Q: i0 i% U/ d) k2 X$ w
{
+ C+ Q! L& Z2 Dfolder = user->get_home_folder();
9 R1 |) S6 l# A; o5 g5 r6 @( ~}
) `# ?# m$ ~4 i8 C( W8 ro New way
4 n( ^2 F: @7 }( Y// Declare the variables3 Z. m# E9 c$ ~8 ^
Teamcenter::Soa::Common::AutoPtr<User> user;
/ y1 b) }! e- L1 F# H5 e. ~Teamcenter::Soa::Common::AutoPtr<ModelObject> anObj;+ {( ~! T& k; k
Teamcenter::Soa::Common::AutoPtr<Folder> folder;
0 y2 N% O* P3 w0 A% N% v% \3 b0 Y6 |user = sessionService->login(name,pass, “”,””, descrim ).user;
% c% ?# {+ W! V* E2 G, k// Cast to the base ModelObject class
9 w6 q3 v( s- ^% lanObj = user.cast<ModelObject>();( `9 R8 A& C- _# q/ c) f! T  N
// Put the cast to a speicfic sub-type, in a try/caTCh block
! \% J" N& e* e5 e// if std::bad_cast not thrown, then cast was successful- r$ B9 ~2 M& i! s3 l: ?
try
2 z: y  Z7 g; s% t# D" I# P{) R5 G5 _* u) ^, d
user = anObj.dyn_cast< User >();
  s- ^9 H" A# n, f/ @  k" ?4 h* |# H1 Dfolder = user->get_home_folder();
5 [1 d" ]* ?+ i+ Y4 f, r}2 H0 Y3 ^# ^" k
catch(std::bad_cast&){}- P8 v4 {. V2 x; w, ]/ I8 d  z; y6 C  E
. i8 z. Z  Z; ~+ Y1 _

4 M9 O/ U, O! z. h, l. s3 关于NULL 赋值+ E2 m& F$ K) ^8 O3 o) T- A

# t% q5 m! o3 F8 C8 O+ a2 ho Old way
& m& n9 ^+ q7 a/ u* n/ m, o2 ?// Declare the variables
! c. R8 T6 `7 J: P% e. A) l5 M& d' c0 OLoginResponse response;
/ W: c4 [: U: E. fUser * user;
& ]" g; e, y- Y6 i4 z$ B  S// Call a service that returns a ModelObject (User)) b' M5 ^( q. U( Q* B) j8 Z, }
1-28 Services Guide PLM00076 Jresponse = sessionService->login(name,pass, “”,””, descrim );
4 @% X/ l, p) G/ s7 I) ^" Nuser = response.user;
3 S5 E$ `/ X9 L* Y// Test that instnace against NULL' Q/ P3 L+ C* V9 L4 d  m
if( user == NULL)( J* R. V2 y6 `; o2 c& s
{
0 F; M; R+ ~* a7 x. W6 C...  Z$ x' E; ~- _8 D5 M$ X; j
}
' b, S% S) \: |% ^+ s) h  Welse" z( r3 C) i  _. g, N- j
{
2 d5 D' w9 N$ w" b$ }  f& Z6 l// Assign NULL to the pointer1 d' b+ G! B3 \9 T9 r2 h0 a% |
user = NULL;
7 \- E9 a% S1 @}
2 v+ ^) j% f+ lo New way
# d; ]6 A  G; ^5 U3 e$ L/ g2 B// Declare the variables
0 W! K8 D5 }* n1 g" k% i// The service data structures do not change, only: T0 U( F, X$ w
// references to ModelObjects5 ]' E& q8 c( q) D) ?% Y1 X. ^
LoginResponse response;+ v0 y) m8 C. Z) e: M6 h8 _
Teamcenter::Soa::Common::AutoPtr<User> user;0 l4 D) B, U6 H4 ?9 p
// Call a service that returns a ModelObject (User)/ U/ x; ?1 d5 B1 G9 Q# T
response = sessionService->login(name,pass, “”,””, descrim );1 ^1 H2 c* G* S3 K" x% q/ z
user = response.user;
9 G" O" b+ M# T  H// Since we are not dealing directly with pointers,
+ B2 I' X! ~/ u6 t// NULL does not make sense here, use the isNull method from the# l4 F0 A+ i4 W! |+ Q
// AutoPtr template class.# f( j2 z7 b- t
if( user.isNull())8 Q* [! i& U6 U! y, l. ^' k6 b  ~
{% P7 g- v; @* j' W) p' M
...
6 V0 N& u& P( p+ F8 Y0 G}1 I' X, b/ B9 Z% j# u
else0 {4 p: R0 U' m5 f7 `
{- ]: [2 |6 |( s3 I! \
// Release the instance and
+ j. l1 D! ~# {' y8 Quser.release();
- {; [: Z2 L0 T: t0 z. E}
! [' K" k% m; {: w, y# _( k$ d' ]! d3 V' s. G  B
, W7 P7 T9 O1 x6 \5 G5 g! ]
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了