查看: 1277|回复: 0

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

[复制链接]

6

主题

4

回帖

60

积分

管理员

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

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

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

×

8 [* e; k  s1 u- {' J* @1 X# Z* m
) {* P, d9 s0 C* s& Y使用内部函数实现枚举类型宽度设置9 Z# V# ^* d: y
$ k5 _, U5 R- `* S2 x
可以自由设置宽度了
' Y7 I+ B% `$ l4 B# _0 i1 W3 k- k' l/ K$ _' j- H! B  U
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    . H  z) e+ r6 U" j
  2. {
    , i  Z6 I5 _3 `
  3.        
    5 ^: I! f- A! @! n; b* r" d
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);& b2 M* n4 t3 P5 Y$ i& ?' T
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);
    5 o+ ?9 u# g! J' C6 u* N: Q8 i
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);; ^- }. C* n4 ]8 _: Q+ J6 k# ?
  7.         typedef void(*setWidth_fp_t)(void*, int);
    / ^: K! P2 W" N: _: d/ i

  8. % G# o1 F: _* X7 Y$ X4 t. }
  9.         TagToPtr_fp_t TagToPtr = NULL;
    & Z: j3 s* X& b% B6 m
  10.         setWidth_fp_t setWidth = NULL;4 l( w% y+ }7 W2 l" B

  11. # p5 @8 A! _  {7 l+ Y% M' n6 K
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    " G1 [) q. K- ]7 o8 R
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;( r; o" y# I# V, _# n

  14.   ~$ _3 @3 r& v7 h" u
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);
      w- i4 c4 R* H
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);6 x1 ^% B* U: r1 m
  17. & Z; C8 P' o2 H8 s
  18.         if (TagToPtr != NULL && setWidth != NULL)
    0 V# x1 o; T" F& W5 `# p0 i
  19.         {8 n  ^8 V6 v5 M- c: p
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    % [+ d; G( S: m% ?: a4 [0 ]
  21.         }
    6 X8 N. R& y2 z  c9 s3 Q
  22.         FreeLibrary(uifw);: m" n- p5 K1 y
  23.         FreeLibrary(syss);
    7 n( m' L2 R7 Q+ Y+ ~! T! @

  24. ( A- p$ R& {# q2 _

  25. * s* r% B4 W8 z1 o, g
  26. }
复制代码

2 `1 O. q! a. s% o) Z: [( F0 h' a. |8 a* C! \4 `! |6 I
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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