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

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

[复制链接]

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

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

admin 楼主

2023-3-6 12:00:22

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

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

x

3 f# m6 f# c8 V% D+ Q, I
% S4 U! _; r/ M; ?" m4 r* y使用内部函数实现枚举类型宽度设置- K0 n- t- t7 T
  ^9 |# U- f2 \& R9 X
可以自由设置宽度了 ( C8 u& K( c0 K8 |# U: H8 J
* N  x& F7 a/ s, m5 t
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    * O3 \1 O1 O+ @: W
  2. {
    & [$ z+ U. [6 L( j6 P
  3.         % i: B3 @2 z. @) a
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);
    4 O3 x( w* m- j: F0 ]% L" b
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);' J+ c: _& l  s% h7 }2 F6 O+ K
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);/ I* Y8 `5 r! C8 s9 x) ~0 q
  7.         typedef void(*setWidth_fp_t)(void*, int);1 w% f' j3 f- M& z( d# x

  8. - S4 B$ {+ X$ u9 d4 C# S5 h
  9.         TagToPtr_fp_t TagToPtr = NULL;
    ( t6 s9 ^$ U6 j- {- w! N8 G
  10.         setWidth_fp_t setWidth = NULL;
    ! T, t4 o  ~% b) N; `& e7 V
  11. 2 |5 _$ u% J% A4 T5 w
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    ' v2 e  ]! H3 y: o; Q* R" F
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;
    * S, o! P, p! P" k& ?' f5 O& U

  14. + x# ]/ l" s8 g/ ^8 C6 M) A6 k! C
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);8 u& t* v& }- V0 [- ~
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);+ r, Y0 _- O& x0 c. f0 I
  17. ' Q% c4 B6 k) K% F8 ]4 \
  18.         if (TagToPtr != NULL && setWidth != NULL)+ t/ s0 z( q) |7 F5 R
  19.         {
    # v* s0 D- @- O
  20.                 setWidth(TagToPtr(enumTag), widthValue);2 [: S8 F  a+ Y- y" b: R/ z
  21.         }
    / G' w5 M$ m+ m- I8 k- V- j+ E
  22.         FreeLibrary(uifw);* U# }4 B4 {( Q3 O( R7 c% c5 ]
  23.         FreeLibrary(syss);  e, O( B7 y$ }3 K' s

  24. 3 |' p6 i* u- j# ^% y. p

  25. + P5 a( A- q* ~' |* Z% k
  26. }
复制代码

& z# C2 d5 _" `& W0 `
  i8 h4 B7 o( s. j
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了