PLM之家PLMHome-工业软件与AI结合践行者

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

[复制链接]

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

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

admin 楼主

2023-3-6 12:00:22

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

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

x
5 E, k% s. ^, m- c

7 f# w; N7 W4 o6 Q( n! Y' X# E使用内部函数实现枚举类型宽度设置, O6 F5 c: F* }* S# v
, A. Z/ m& f) F
可以自由设置宽度了
7 T; P# u, }9 v7 E# h
8 J7 ]5 J/ h( F3 y2 S. ]8 r4 q
  1. void Utilities_InternalFunctionCast::setEnumBlockWidth(tag_t enumTag, int widthValue)
    $ d! [$ c' G5 G. D5 Z/ T! O, j
  2. {. g, t. z$ K% @# g5 v) E/ |
  3.        
    / j3 ?1 b. E1 G" W/ Q. d( x
  4.         HMODULE uifw = LoadLibrary(INTERNAL_UIFWLIB);" D6 W: r4 o. L: a' }
  5.         HMODULE syss = LoadLibrary(INTERNAL_SYSSLIB);
    ) S1 U4 v8 d# {3 h3 ~" M1 h
  6.         typedef void* (*TagToPtr_fp_t)(tag_t);$ z9 U* }  ^, B- L2 X" h) a6 C
  7.         typedef void(*setWidth_fp_t)(void*, int);7 o0 l! n4 I3 _4 R5 N) A9 D" L: Z

  8. 1 O" X  o7 E  k% t6 h' \
  9.         TagToPtr_fp_t TagToPtr = NULL;" |0 [2 O8 Q7 L* w
  10.         setWidth_fp_t setWidth = NULL;5 e& N; `( T8 t! n' b# A
  11. " s! }" `% T3 i" b0 f! _8 R
  12.         char* ptrName = "?TAG_ask_pointer_of_tag@@YAPEAXI@Z";
    $ W# B" G* F' D4 S! X
  13.         char* widthName = FUNCTIONNAME_SETENUMWIDTH;
    $ ?3 f# s- |1 g) k# o8 r) O

  14. 0 U/ D7 H1 M8 p2 P0 o
  15.         TagToPtr = (TagToPtr_fp_t)GetProcAddress(syss, ptrName);0 N# W2 B6 x2 ^' J2 u2 }5 A8 q
  16.         setWidth = (setWidth_fp_t)GetProcAddress(uifw, widthName);
    6 `" I2 A- T+ o& O" u

  17. " _+ @; T" ?( i0 B6 Q: l$ ~, l# j0 p
  18.         if (TagToPtr != NULL && setWidth != NULL), e8 i2 ~/ c; X* G3 P# I2 |
  19.         {
    & }) {+ U/ N1 J: L
  20.                 setWidth(TagToPtr(enumTag), widthValue);
    5 L) u& s* t& E
  21.         }
    ; k& L0 ?; ]0 a( t2 _5 }* _2 @. D) P
  22.         FreeLibrary(uifw);9 e4 t6 u! H6 Q. z
  23.         FreeLibrary(syss);' y! P9 S7 V# ^: V- g" R
  24. . j, U& E( F* E" a
  25. * W7 X+ I% [- c: v' c# B
  26. }
复制代码

( M$ f8 m& P9 u$ u# L
) I( e* Z+ E9 [
上海点团信息科技有限公司,承接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二次开发专题模块培训报名开始啦

    我知道了