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

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

[复制链接]

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

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

admin 楼主

2023-3-6 12:00:22

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

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

x
" `  c* V, @. @

3 ]; @, h+ Q1 ~1 n  Y使用内部函数实现枚举类型宽度设置
8 o/ K$ ]5 a( h# Y
4 s! u5 z1 {, c3 X! ?可以自由设置宽度了
0 I$ b0 q1 z1 h: @( T+ d( X2 [' l( @' _. D" a
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    & ?; _5 H0 p) ]) r  a# {, ]5 o/ d4 w
  2. {
    0 N6 N0 [1 l& w8 J/ ~5 S! J$ v
  3.           u( g8 \  R, @5 D# y
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);3 X0 G  E6 v" g) i0 E
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);: p& f, {5 f2 Z/ s* P0 N; f
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);- ]: N0 B5 k) B) o- _5 P& ^% F/ Y
  7.         typedef void(*setWidth_fp_t)(void*, int);3 O! S7 O; m! o* [

  8. , ]; I8 a6 a& ~2 y5 _; ]. j
  9.         TagToPtr_fp_t TagToPtr = NULL;
    * A" E! l8 W/ C: f. K% F4 ?; E
  10.         setWidth_fp_t setWidth = NULL;
    9 |0 d$ W- `) _+ a
  11. " R/ o* U/ V. y1 f. d
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    * n& Y, H% x0 ]
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;
    ! V" e& D) {! [( d
  14. 3 n8 B! C3 G1 |7 e
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);
    7 ^) h( n! ?& [/ d! r$ r
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);/ v2 h) {( H( k

  17. - \# A; T( K% G. m$ ~2 x9 k
  18.         if (TagToPtr != NULL && setWidth != NULL)
    0 V( R1 q, w0 ?- }; j
  19.         {$ B: L- n' Y5 X2 i" a2 ~' g
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    ) k$ z( m/ o2 M' {$ b  h5 X5 C) B
  21.         }0 _9 O/ h7 J% l9 a! x& Q
  22.         FreeLibrary(uifw);. a' {4 z) p* D
  23.         FreeLibrary(syss);4 i+ l" F' K& C! E
  24. , u" l0 K7 S) g5 Q6 T6 I
  25. 2 ~! ~; L$ T4 f4 F- s( \/ P( p& Y( X
  26. }
复制代码
7 p4 r, @8 E" }' K9 ^

$ j4 r# z, j( @; e/ f
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了