PLM之家PLMHome-国产软件践行者

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

[复制链接]

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

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

admin 楼主

2023-3-6 12:00:22

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

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

x

& ?2 h  f; M2 y* f3 i* K: w
; J: p* ?7 b4 M- U使用内部函数实现枚举类型宽度设置1 Y) d% k: D9 |

; K  @' G/ o" v- Z# N6 q可以自由设置宽度了
6 y, K/ \3 y5 M) G& c  k5 z/ z4 t3 I0 u* A! r
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    - N5 N' u$ O& a1 a
  2. {
    " M) P/ {  d! q1 S% W* y) a
  3.         # J0 T! i& E  Y  f
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);/ K( d0 S! X  r- ~' r
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);
    / H2 S2 k1 x$ `
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);
    % R4 X: Y/ r8 n3 X. L1 h1 e8 ~
  7.         typedef void(*setWidth_fp_t)(void*, int);. g+ I7 O  D- ]" j1 U4 k7 r" E: a

  8. / ]; `+ C/ K  ^+ S
  9.         TagToPtr_fp_t TagToPtr = NULL;
    & o& M2 s: A) K' _; F& c
  10.         setWidth_fp_t setWidth = NULL;
      B; f* F1 R7 l6 J

  11. * B% f1 u6 l( ^+ [# c1 s
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";0 g" E. p% `. B; Y
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;* L; b5 @: v: q4 @$ E
  14. , F: \5 K) Y0 _6 T, x0 {5 q
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);7 |8 g+ a! y' e" V6 v* ]6 I
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);, j& n# a8 R7 ^6 e) g& X# R
  17. & N3 e! K+ Z, T/ ]0 v
  18.         if (TagToPtr != NULL && setWidth != NULL)
    ! N7 q; |: ~2 T" V) M* x: a+ ]
  19.         {# {# e! \% G* ^+ K; r- Q1 R8 }
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    ' H3 X! A( e+ H/ s; X) K2 T6 G
  21.         }  G$ b% M7 p+ p4 N) n9 u( F0 _
  22.         FreeLibrary(uifw);( C- _2 b4 Z& ~2 i8 |0 J6 B" o# A# K
  23.         FreeLibrary(syss);
    & R9 ~6 J- l  O4 ?
  24. 6 ?9 e& z& u5 l0 Y  t

  25. / j7 E3 a0 d6 U' k' K/ M" T
  26. }
复制代码

: i+ h( W* Y5 |; L5 Z5 h1 @9 _& V- \1 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二次开发专题模块培训报名开始啦

    我知道了