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

; i, F$ `5 P% ?% d. w
& |2 n6 h& v7 q' ~4 ]5 `8 y使用内部函数实现枚举类型宽度设置2 ?( P  F2 s9 \/ S! s8 y

: v' ^% h, u; {) J  a8 ^可以自由设置宽度了 5 e( N2 P# f. ]  c# }

% ]! q/ T9 P1 K4 {" H. H7 v
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    ) J# N% G2 F" w7 i! h" q, f
  2. {+ x; I* \0 j& s# [6 q7 z1 ]+ ?
  3.        
    4 I0 r/ f) z, c; s+ N+ i/ h
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);3 }4 M* W$ h+ Q5 F7 B" L% P
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);  z/ I+ N0 K7 q0 L+ f
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);3 ]' e: ?" U( \6 h- o5 ~/ L3 \
  7.         typedef void(*setWidth_fp_t)(void*, int);- G; ^& I# _; r8 o* c6 t. G! C/ }

  8. : p) Z2 p! T$ \& _& x
  9.         TagToPtr_fp_t TagToPtr = NULL;
    - y& B$ H% E+ P7 O
  10.         setWidth_fp_t setWidth = NULL;; b# v! w# h" O( Z0 A& c

  11. . e+ B) o' N" ?4 |( S
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    , a8 E0 I$ [, [" g1 k% F
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;$ ^5 g  j( F! m" \
  14. % E' o: U" o2 ?, |: U
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);
    0 e$ W% P) P$ G( S+ H0 A" G+ w" V* ~
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);2 h  w# T  i5 A& Z

  17. # J9 [' c) C* C( t
  18.         if (TagToPtr != NULL && setWidth != NULL)9 J) K# k8 C. P0 a
  19.         {: N! k# z- M6 i. o# O2 T
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    , g9 [9 D$ N' m/ L+ p9 g" ]% N+ W
  21.         }
    * p, K; X, j% i; g$ X6 e: E, H
  22.         FreeLibrary(uifw);$ n* |- E( M0 t+ i% q% |2 _+ X
  23.         FreeLibrary(syss);6 w2 [& M+ l: Y

  24. 5 j8 h& d; \/ Z/ J- {. F* R
  25. , k$ ~$ x( W$ A. B
  26. }
复制代码
, S. k" E- A$ T8 V, m/ g, Q: i% l1 P7 }
8 N( f2 r$ o! `" H' c
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了