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

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

[复制链接]

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

2471

主题

1276

回帖

8万

积分

管理员

PLM之家站长

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

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

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

x
- a" w( P0 V/ j* S
2 G6 g3 a% g9 K5 z) T+ E: s
使用内部函数实现枚举类型宽度设置8 c+ a3 Q8 U/ G1 n$ f4 w' [  K
. |5 E% Y0 Q0 c; _8 z
可以自由设置宽度了 0 W# D9 B  c) z5 R0 N0 ]1 C

: d- E) n2 L" A( J
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)3 ?% ~6 y1 t/ m. p1 U' Z1 a) o% M
  2. {
    ; i; Z) ?. g7 t+ I- T
  3.         . u! ?: W' K3 ^2 B
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);$ F- G5 A* ~! Q: z9 x
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);
    ) l5 K! ^1 @% d. Z- F* w4 Z
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);
    2 v$ }' d. _2 _, P
  7.         typedef void(*setWidth_fp_t)(void*, int);9 G7 R) A; H# L" Q; c
  8. ( D2 V! X3 K/ X# {: r4 q
  9.         TagToPtr_fp_t TagToPtr = NULL;; `2 a7 e9 a% B4 k" }' g! u
  10.         setWidth_fp_t setWidth = NULL;
    8 M! `% X3 a- b/ G

  11. ! D+ U' a* O& D
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    ( G. m, I- H# |/ v: J; W* A1 M
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;
    3 c8 B( W$ }: O, I) z

  14. # ?2 ?" g5 k! K0 Q
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);( i( |' n$ T" _+ x) b
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);
    ) ]7 @8 W# w+ h3 n" j6 p, Q3 V

  17.   ]' u0 u2 i! ^9 ~5 o9 N; o5 U
  18.         if (TagToPtr != NULL && setWidth != NULL): n& w3 D. y; ~7 p' H" W1 l/ n
  19.         {
    6 F2 n1 A) o+ W
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    ' m8 \" J" ?4 ~" ]. b3 v2 E7 O
  21.         }
    ) w) x& Y3 b" H" G9 S
  22.         FreeLibrary(uifw);4 C( c/ ?/ ~- P0 X/ |' K3 {
  23.         FreeLibrary(syss);
    ) C9 p7 }. O5 o, C/ b# f9 ]
  24. , t0 b  V/ J' R" P
  25. 3 @$ @2 ]% y8 v5 {6 h2 Z
  26. }
复制代码
, K5 @& @  ]8 O4 d: k2 y

& J4 L- e. M; q9 C, ~; O/ e
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了