PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

admin 发表于 2023-3-6 12:00:22 |阅读模式

admin 楼主

2023-3-6 12:00:22

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

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

x

9 o9 Y9 ~/ ]4 V6 P  M
: ^/ g! ]) @# m+ ~% t+ p% @& C使用内部函数实现枚举类型宽度设置
7 {* y7 ^% h" L& Y% [3 F
! Q# M0 W1 T: g  |& B6 F* E可以自由设置宽度了
9 g+ w$ e, A/ O5 j7 h. `4 J6 @6 R+ F6 r2 v6 O8 ~) ^
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)% V- Y. u! _  W0 _- @5 D
  2. {
      u) y% V3 _9 u3 t9 k. b. L
  3.        
    7 Z. a, d, N% G& J9 ^% C
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);
    3 H) @7 B9 c$ D, d5 t9 b' I
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);
    ( n/ f' A$ }+ U6 ]; _+ I4 g
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);1 y2 {  d" z* `% U$ {/ P
  7.         typedef void(*setWidth_fp_t)(void*, int);
    & c$ w4 B8 n" a5 T

  8. 9 _8 H$ r: c3 `1 w3 Y9 r9 Y
  9.         TagToPtr_fp_t TagToPtr = NULL;4 Z9 c% W: @8 H/ {2 G" F
  10.         setWidth_fp_t setWidth = NULL;
    & n; s0 m" v  z' \0 l" }

  11. 5 t) p9 r  k5 C# o6 H$ Q
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    8 c0 K1 v6 j+ u  Y5 |  q
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;
    : [/ `, A1 a7 s0 \3 g. D9 I; [' p
  14. * J4 Q* X* b! |2 R
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);3 }( p1 Z# [* P3 l" `! h2 {: E
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);
    4 H2 ~0 t1 ?2 ~9 L2 o

  17. 5 S# |- V6 \) K+ ]- a( V2 f
  18.         if (TagToPtr != NULL && setWidth != NULL)4 x( ~' c4 _& R! B- U
  19.         {7 |9 T. u, n  l6 s
  20.                 setWidth(TagToPtr(enumTag), widthValue);' i1 l% U; ~/ S# c) e6 U
  21.         }6 r$ h9 A" `9 n0 Y2 M* A
  22.         FreeLibrary(uifw);
    4 i2 C; W% B7 O9 |8 p3 y; ?  n, \
  23.         FreeLibrary(syss);
    7 F- K4 e3 Y! G- _$ |3 B  z: e
  24. 9 f. d* H9 N& k9 D  u* J
  25. 0 ?. F. f6 H; |8 ?" f# n% }. N" d
  26. }
复制代码

" ~" I: z6 q) k! j. R
* ?; W: j8 J7 v5 q1 {: C
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了