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

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

[复制链接]

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

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

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

x

, v2 e, F. o) a! y; e4 m1 L7 t: P9 C1 z7 U4 K
使用内部函数实现枚举类型宽度设置+ j3 c6 I; M! \+ H

9 g' R: B$ E6 H( e" U" h可以自由设置宽度了   i$ B5 b; @' j9 P" m( z. m
# r, O' G, _3 z0 C3 g
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    8 M7 e4 v; }4 T8 `
  2. {3 @" F6 P; `5 B# h8 z, \
  3.        
    . f, {/ f  \) s
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);
    ; J: f; e2 f$ {+ L" C* }( l- V
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);& o8 ~! Y5 X5 \+ C# D' z1 g( j
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);
    ) C7 B* z4 L1 |$ U' a* h
  7.         typedef void(*setWidth_fp_t)(void*, int);1 a2 s+ z, x& L

  8. : R6 w& o2 V. Z4 F2 J( o
  9.         TagToPtr_fp_t TagToPtr = NULL;
    . C. v1 t6 n  B$ D& V( O
  10.         setWidth_fp_t setWidth = NULL;/ s( U9 H& i, A
  11. 6 n) [7 B" A; E/ J! ]7 W
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";1 W- v! U$ l9 e, g. `1 Y* M: s
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;  t8 V3 e+ w4 V+ ^
  14. % x/ W8 H- X" Q& L2 o
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);+ g7 o8 ~. F' }5 G6 _/ O
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);
    0 Y: R& _( ~" P! {" o4 I6 `6 H" o
  17. " a. M& {0 P% L% w4 e8 G
  18.         if (TagToPtr != NULL && setWidth != NULL), ?7 R; q+ q3 B: L2 e
  19.         {
    + M  ?2 j5 V7 v% Q) L3 j
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    ( u) {& n" R& f% M; z
  21.         }
    % c) M4 O2 \$ {
  22.         FreeLibrary(uifw);
    3 c9 f( p, c/ ~; F9 T
  23.         FreeLibrary(syss);
    + |3 f- m' B* G
  24. + k* F1 X4 J& y& e$ m8 N

  25. ' z3 U% L. Z  j' J% x$ K( T
  26. }
复制代码
, f% x3 I* a' @9 M4 z
/ e& ?% S) g, ~' t4 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二次开发专题模块培训报名开始啦

    我知道了