查看: 1135|回复: 0

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

[复制链接]

4

主题

3

回帖

44

积分

管理员

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

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

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

×
3 h' Q% `, Z5 @; U- W8 M5 v
" Z2 X: k- z) I) ^/ ?8 q
使用内部函数实现枚举类型宽度设置
0 X6 x  w9 Y" n( @
; F* O- W4 m3 Q/ r& V! |可以自由设置宽度了
, I: u) X" J/ \5 {; G* g" B& j* w
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)0 I3 }3 p" h* f( c+ T
  2. {
    ) m; r& b. c/ F1 h
  3.         , e3 }6 T  x, @# I) @/ s; M
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);2 K, P( }+ L# |: q+ e
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);
    : q2 W$ K+ v( s! M" t, Q
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);3 I7 }' e# w3 [$ K# C1 [2 r8 w
  7.         typedef void(*setWidth_fp_t)(void*, int);
    & b  F0 f- ^8 H6 Y6 A* u

  8. 5 P2 P6 d8 y& F- I2 t
  9.         TagToPtr_fp_t TagToPtr = NULL;* M8 O5 G. T/ N* L$ ]
  10.         setWidth_fp_t setWidth = NULL;
    7 |: y& N- i, t$ \

  11. ! ]. h' z  a! c# d/ x3 B
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";1 ?  ?  h6 z$ M+ N
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;$ h% E* A' F% N2 |9 w" p* ^- Z" A
  14. / r$ s, Z* U4 k$ P# j
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);" o, A6 \+ x8 w! Q2 h
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);" ~! {9 T8 R: K
  17. / |& b4 I) s( a% M
  18.         if (TagToPtr != NULL && setWidth != NULL)
    ' J% B4 }8 y2 R+ z
  19.         {
    + }4 `3 T6 D, D0 U- k: h
  20.                 setWidth(TagToPtr(enumTag), widthValue);; o$ C' H, I7 c$ D! C4 ~. M, }' p+ q
  21.         }
    + _& H0 e9 ?7 Y) Z6 Q
  22.         FreeLibrary(uifw);
    0 T/ n- I6 B$ |8 B  q  q
  23.         FreeLibrary(syss);1 b$ P2 Y1 R, I4 ]2 V- t- w, N% O3 p: b
  24.   l  o6 Q+ H# _+ P( s
  25. , ^0 N" e& b( W$ M: s3 ^7 l7 p2 Z
  26. }
复制代码

+ z- p1 f, S: H' _( c+ |) T
4 ?4 y# e* F* |5 U9 e
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部