PLM之家PLMHome-工业软件践行者

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

[复制链接]

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

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

admin 楼主

2023-3-6 12:00:22

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

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

x
, ?: B4 U: U* V$ J# l) i! o4 r: Q
  r7 q/ @* b! R% Q
使用内部函数实现枚举类型宽度设置
# N5 m, w* ~. ~0 {' t/ \2 i/ n1 |  _! w+ N; a/ _9 t
可以自由设置宽度了 9 h% j2 G: Z/ ?1 ]" w
( q$ Q  q) k' p# o; Z: S$ s0 F# j
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    0 c! q; s) \, ?0 h$ o6 P3 v, {
  2. {: }% J  F6 v6 p% F0 i' z" g4 A
  3.        
    * t" {! G9 \: U
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);
    : K) q5 `. S+ ^) S9 y  N
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);1 w* r' V# H& L
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);" X" x/ I' c: E0 c  \6 @* e9 i+ V
  7.         typedef void(*setWidth_fp_t)(void*, int);
    9 a$ p+ S, S$ y# K6 o
  8. , L) v3 W" C; A
  9.         TagToPtr_fp_t TagToPtr = NULL;5 h( u' g. q2 {. P$ v
  10.         setWidth_fp_t setWidth = NULL;
    4 X6 S9 o9 ~+ P2 _
  11. 4 [- s, L2 q+ z/ ~2 A
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    4 n- r5 w6 r( C8 X
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;1 W4 `0 V: _( A% `
  14. # m% J! d$ {$ U5 r7 }
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);& e2 d0 S. C8 N' K
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);1 J) G* b9 [- z" H! N

  17. 7 B& a1 z( r$ e& C% b& K
  18.         if (TagToPtr != NULL && setWidth != NULL)1 _1 N0 f/ w) c6 G  ~' B
  19.         {% R/ E. d* U0 m& W  `% f
  20.                 setWidth(TagToPtr(enumTag), widthValue);! l5 B1 ]6 ]( R8 h
  21.         }
    ! a; V+ Z2 B, m" h; x  _
  22.         FreeLibrary(uifw);6 e6 C& G" e- G6 l8 B7 g
  23.         FreeLibrary(syss);1 e6 l$ W4 V" s: q9 S% g9 {

  24.   J5 G& `+ r0 l' ]2 Q# T+ U- j
  25. 5 d  u( l4 }$ Y3 ?& y
  26. }
复制代码
0 n4 U# i  m/ b6 E/ X0 G2 V5 d
  b) W5 W$ {8 K- e  y
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了