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

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

[复制链接]

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

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

admin 楼主

2023-3-6 12:00:22

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

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

x

2 b: O% p0 Z& `- G, e1 f7 P' `- F- ?( y* K* m3 I" j
使用内部函数实现枚举类型宽度设置8 Z/ z" Z6 y  E2 I8 P+ s. g
" u9 y8 c' f" y! j# M
可以自由设置宽度了 1 K. Y/ \+ _8 [3 b5 C
. d' [+ v1 e* e; w; m
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)8 W! ?* V0 I) J/ b  Q% R) i. V$ M
  2. {/ W4 p3 s' ?3 ~. l7 v; j, K8 r% N
  3.        
    6 C/ L5 x1 P$ }( n3 E
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);" O/ j2 m- c: ~3 L
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);5 Z; ^, r' Z+ s  J  ~8 E
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);1 x; s) W3 C! Q) K) i
  7.         typedef void(*setWidth_fp_t)(void*, int);$ Y( y" J$ G: U* M

  8. ; T$ p9 p2 o4 h
  9.         TagToPtr_fp_t TagToPtr = NULL;: }( t" ?6 g$ n% w9 M
  10.         setWidth_fp_t setWidth = NULL;
    % p! F3 f# ]' h: q* p" E4 ?
  11. # x6 D- N( G, c9 `
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    7 p  ?5 c: q8 ?( D1 D& V
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;; J/ @; q2 \2 b) e' G

  14. 6 k0 n  p* n6 A! Z2 R8 w# S" A
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);' q# H3 w5 H! o, M9 F& Z  I' \
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);6 a5 B* u1 A6 [$ e
  17. ; d3 V! m2 z1 C$ g6 L( r; d! e
  18.         if (TagToPtr != NULL && setWidth != NULL)
    . t8 c  u: p) S  e0 \+ w
  19.         {0 O9 \% R: i9 K6 s) E
  20.                 setWidth(TagToPtr(enumTag), widthValue);7 T) b' G; K0 I# w# b# ]
  21.         }5 z2 b. I* I/ y
  22.         FreeLibrary(uifw);  m1 g/ O1 D. _! q
  23.         FreeLibrary(syss);
    5 ~, M- B% E- y0 |, G
  24. 8 Q# c$ C, y2 }% r; y7 w

  25. % O1 X) B4 G( u
  26. }
复制代码
! P, L  F- |! U. c
2 ?. \& U! X0 H; W* i& I
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了