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

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

[复制链接]

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

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

admin 楼主

2023-3-6 12:00:22

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

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

x

9 E+ H$ B4 W$ n# K' i+ u8 D
4 [# n! }! p, H  S4 A使用内部函数实现枚举类型宽度设置2 n! x+ [* O+ b; r

6 T" N# H$ K& E/ C  D可以自由设置宽度了
" W, T0 T# \% S. I8 Y) O# n) h( m) P
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    / q& V$ S/ Q1 y+ F( r* {6 [
  2. {4 r' Y3 `2 l! g7 F
  3.        
    / p6 T0 `6 [1 P! I+ c3 ~. m$ B7 `
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);. w" [: f4 k  @1 b2 a
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);6 V/ m% [& I% ]/ G
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);
    1 ^7 s& u( T: c7 F) L, z
  7.         typedef void(*setWidth_fp_t)(void*, int);
      G2 w- Q# B/ V1 z! O/ E; O$ {* t
  8. 4 A% i1 Y8 u* H4 u) n) j
  9.         TagToPtr_fp_t TagToPtr = NULL;' S3 F8 [, Z+ M8 x$ [# f
  10.         setWidth_fp_t setWidth = NULL;, r" G1 @4 z" U5 b  B- c
  11. ) i' f3 z. j% _" K' D0 d/ k
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    # t: q7 f' |, P: o' }
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;
    5 ?2 z8 O  f. o2 r: ~
  14. 8 C! E5 \/ Z. [: \/ }, ], k
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);
    & v* P: r" v$ e8 p$ ?6 B
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);
    7 c: z% `" p9 I
  17. 2 m& Q$ Z* d6 Q6 @3 k9 @9 ]! g6 U' X
  18.         if (TagToPtr != NULL && setWidth != NULL)4 N% M5 ]' [. B* ~/ P1 G
  19.         {# A4 W0 T0 ]# {: v
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    2 E! |& h4 R% E, L6 M
  21.         }3 z7 u. ]- G! O# ^. V! B1 R
  22.         FreeLibrary(uifw);; O. u- _/ \5 ~  K( ?6 h
  23.         FreeLibrary(syss);) j* O4 f/ d/ o: I' j% Z" N

  24. 4 g( D" H4 r/ ?" F( v! Q
  25. : i3 o: M' l" {- y4 a
  26. }
复制代码

' b& C* d! v& M+ ^) d, M6 q5 h$ z' b% b% v+ t$ K
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 www.diantuankj.com/ doTeam.tech
回复

使用道具 举报

发表回复

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

返回列表 本版积分规则

  • 发布新帖

  • 在线客服

  • 微信

  • 客户端

  • 返回顶部

  • x
    温馨提示

    本网站(plmhome.com)为PLM之家工业软件学习官网站

    展示的视频材料全部免费,需要高清和特殊技术支持请联系 QQ: 939801026

    PLM之家NX CAM二次开发专题模块培训报名开始啦

    我知道了