PLM之家PLMHome-工业软件践行者

[资料分享] 使用内部函数实现枚举类型宽度设置

[复制链接]

2023-3-6 12:00:22 1050 0

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

积分
82162
QQ
发表于 2023-3-6 12:00:22 | 显示全部楼层 |阅读模式

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

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

x

/ m5 i4 \# O! m0 A. i* z
* ^! U; F' H. y, P* c使用内部函数实现枚举类型宽度设置! o3 T/ ?$ x6 Q( S& {( R: F% J
' ~  ]* y; f7 O% R* [
可以自由设置宽度了 ! m0 ]- _! o. |! P3 C* h1 K+ T
5 i2 [& f+ Q1 q4 r
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    # H' K8 C+ o5 V  p9 y2 r/ |1 q
  2. {
    8 f4 ?+ e$ t8 y: @5 |; {+ z
  3.         2 o- q4 I8 W# K( b
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);
    , s( c7 o4 Z5 Z$ f* u6 ?4 h+ a2 R
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);
    * T4 Y7 c2 S; g2 G% x# t# N9 c
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);* H% D! ]& \& y. s  @+ H
  7.         typedef void(*setWidth_fp_t)(void*, int);
    0 u0 p; P" H# B. X  w! j" H  j

  8. , r& P' ], I$ N- _
  9.         TagToPtr_fp_t TagToPtr = NULL;1 Y0 K; o; ~9 U0 C% \, o* o" A
  10.         setWidth_fp_t setWidth = NULL;
    2 M" F2 `4 \& J' }: k
  11. 4 ^  g' H- F1 @4 t
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    0 |1 v. u* H3 V7 _/ p
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;
    - M7 t$ J( H" ]8 {; G3 u
  14. ; {  C6 ]4 s: \# w3 V7 J2 [0 ?0 U5 P- u' ?
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);
    / ~% Q2 ?' R+ o6 j, y6 Y
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);4 B, t9 E/ E9 R( b

  17. 6 A9 _5 y8 a7 j! ~( T' @3 k; w1 X
  18.         if (TagToPtr != NULL && setWidth != NULL)0 j* r' \( |" Y, q* x
  19.         {
    5 t$ a& z0 m2 M6 V* [- U8 m& R
  20.                 setWidth(TagToPtr(enumTag), widthValue);. y2 ^2 x6 K1 H3 t$ e
  21.         }1 o3 p1 Q: o8 n  o. i
  22.         FreeLibrary(uifw);
      h4 w8 `6 L7 \% F8 x3 P
  23.         FreeLibrary(syss);
    ' G' W6 }' j8 U: ^) Z4 k; x7 ]
  24. 1 H  t. z  J! V: Z$ z% H+ \
  25. 6 b+ g. e; t4 E1 s! j2 C
  26. }
复制代码

: v7 V: B  a& u8 Q: O" J( R- G# V0 n% c0 Y
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 注册

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了