查看: 1198|回复: 0

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

[复制链接]

4

主题

4

回帖

52

积分

管理员

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

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

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

×
0 a" }8 P2 Y2 N
5 H$ u5 e# y* U
使用内部函数实现枚举类型宽度设置
3 v" L$ U: I- }& B2 w- t6 J) ~9 B8 {5 ]2 j
可以自由设置宽度了
* s& e8 q8 S" S5 ~. l, Q7 c
( |. i# [+ ]. U+ k
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)' B* u1 [+ e! G, V) m" [
  2. {
    ' d1 F5 E, V- L7 Q! R
  3.         + `6 q9 n! ~$ ]3 v
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);
    6 J3 s6 f' G0 j& r- _* I
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);
    & S' @0 \7 M: d
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);; R: H& A5 ]# ]: `* P6 e" l8 Q
  7.         typedef void(*setWidth_fp_t)(void*, int);2 G9 m6 J) N/ J# v8 V- n- R
  8. ! G2 p( ]1 e4 P, I- o
  9.         TagToPtr_fp_t TagToPtr = NULL;
    1 b, h3 \5 `( Y+ ]. S7 V# o
  10.         setWidth_fp_t setWidth = NULL;
    & b# q) g) N0 i3 `" Z. n

  11. ' @. m% Q7 }! K( X
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";" m) C) t7 S3 b% k
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;
    + c. W. p4 z/ V
  14. ' Z, _. d( c6 c, y+ k
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);5 T) A8 q  v7 M3 C7 `. v
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);
    : H5 x: v# J" v' ~! j

  17. 8 Z) [* ^! b+ ]: _& O+ g+ ?
  18.         if (TagToPtr != NULL && setWidth != NULL)
    ) A0 q0 f5 o  h  p
  19.         {% C7 x  J3 i8 m- B9 b
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    " r" @) n# V5 m7 [: y7 T
  21.         }+ D% W  H8 F& R+ E* p; {
  22.         FreeLibrary(uifw);4 a" d& ?% p# A8 B0 {) p1 m/ ]/ m- i
  23.         FreeLibrary(syss);. a2 ~3 \* a' h& I
  24. 3 R( e5 b) y+ d2 |- d

  25. # g* m( C6 ^' S$ c  |3 _
  26. }
复制代码
/ {5 R8 s& b" d  v% m0 u

% d3 `4 n0 j7 t* t- E
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.doteam.tech
回复

使用道具 举报

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

本版积分规则

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