查看: 1347|回复: 0

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

[复制链接]

2477

主题

1280

回帖

8万

积分

管理员

PLM之家站长

积分
82265
QQ
发表于 2023-3-6 12:00:22 | 显示全部楼层 |阅读模式

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

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

×
8 k: c2 }7 g8 F5 f0 H
3 g2 @( e, g- Q( W
使用内部函数实现枚举类型宽度设置
/ u; a7 K2 u4 K6 |: e6 P
8 M0 A( Q: y* o& @+ ~" j6 W可以自由设置宽度了
6 f* z- l8 g# A# E4 N0 O8 F2 S1 M0 K" z% Q
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    5 e5 d! b+ z$ h
  2. {
    : o' C: m' \' _1 i
  3.        
    : u2 g! `1 v3 [: y
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);- t) d! u1 v" t
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);7 N+ Z$ q9 W+ k9 t+ f
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);
    / o  ^" C; j* x( G- q
  7.         typedef void(*setWidth_fp_t)(void*, int);
    ; H  E( n& s' {4 g; k- {- G5 o: M9 D
  8.   M& M3 Y. g. ?
  9.         TagToPtr_fp_t TagToPtr = NULL;
    1 x; i8 G* {8 ^0 M' |
  10.         setWidth_fp_t setWidth = NULL;
    % _2 w6 z5 T0 L: R) H

  11. + {6 F! n  R4 V1 U/ R/ \% m7 d; G" ?
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    / f; p6 M0 P& |7 n4 f2 C+ u
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;
    ( `  n9 M$ K: O+ p: X
  14. 0 H+ K, S7 D& A# h  E( C. p
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);
    ' t, ?; ]# D8 `: x
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);& g8 u9 c) C* G( b6 f+ q8 G$ D
  17. + C! i( U% T7 G' _
  18.         if (TagToPtr != NULL && setWidth != NULL)0 Y8 c7 B% m! W0 O5 R6 v
  19.         {
    ! |- e* n9 p- w" L+ v# Y5 r
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    # j0 w( ]0 w. c/ A3 R. ?$ o
  21.         }8 I& B2 L3 n: c0 J3 C+ _# m
  22.         FreeLibrary(uifw);4 A! X3 l& z0 y' o" ?6 g% o2 y) p$ V
  23.         FreeLibrary(syss);
      t2 D( ?- B" i! G

  24. ; f! I8 P2 M" }; t5 z! C* t1 J
  25. : P; o8 D5 x* e+ ^8 O3 u
  26. }
复制代码

% A0 k" p" \; m8 ]; P; Z# W# ~4 N* ~
上海点团信息科技有限公司,承接UG NX,CATIA,CREO,Solidworks 等CAx软件,Teamcenter,3D Experience等PLM软件,工业4.0数字化软件的实施\二次开发\培训相关业务,详情QQ 939801026 Tel 18301858168 网址 doTeam.tech
回复

使用道具 举报

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

本版积分规则

在本版发帖
关注公众号
QQ客服返回顶部