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

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

[复制链接]

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

2470

主题

1275

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
1 o$ Q4 t4 F3 `6 w( I8 e4 |

" Y. A8 J8 p( X$ K6 S: C' t使用内部函数实现枚举类型宽度设置0 O) p* u" V7 u% g
" f6 \7 @9 ^1 |0 v6 k
可以自由设置宽度了
! b/ q# y/ @) q: J* G# V2 s; G0 {  A+ w2 J1 t2 |
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    2 P  P+ Y& X* C6 r
  2. {+ t0 u) t+ h) A! u* w. x  Y0 F
  3.         8 z- e; @3 u; H5 A/ N- f! L
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);
    2 G6 l5 |! v  z6 E3 J5 j
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);7 c: t+ i7 P3 p5 E: m3 [9 F
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);
    " J" E9 _2 k* b, i7 B" @
  7.         typedef void(*setWidth_fp_t)(void*, int);
    . W: R9 \% o; j7 W+ K& X6 w0 f  o
  8. " n0 L2 O6 ]5 ]" w7 \, J. F
  9.         TagToPtr_fp_t TagToPtr = NULL;
    0 I* l& {* |  ^/ K; r9 ?1 {
  10.         setWidth_fp_t setWidth = NULL;
    : x2 ^6 e  r9 m6 o3 v& T% K
  11. # m7 ]5 h. L( n
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    + I" X) h1 o9 Y  r
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;/ u4 p% I1 p' G( I
  14. ! y% f+ ?: |6 i3 G
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);
    0 O9 c, P! K  f
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);2 d8 O" L, @4 t0 r5 L
  17. 4 Y6 L% s: q6 A0 S. ^% T; ^
  18.         if (TagToPtr != NULL && setWidth != NULL)
    % P& N1 D9 r- P. x
  19.         {
    $ r" V2 {/ s. [# F+ d
  20.                 setWidth(TagToPtr(enumTag), widthValue);1 c1 f: ]  e8 C5 }
  21.         }
    / X. s* G6 q/ q" E2 P* r) ~
  22.         FreeLibrary(uifw);
    $ u+ g$ ?' k4 k* v% O( y7 I5 C8 R
  23.         FreeLibrary(syss);( Q! |9 g' U' o/ r
  24. " c- o, S: }0 A% S2 r  R
  25. 1 h' P6 z/ @2 d; g/ s0 X7 k  K3 G
  26. }
复制代码
* i. W  g  l5 z# U0 l
3 g+ b$ L' U/ x, a9 i3 N, @
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了