|  | 
 
| 
NX2406 版本后二次开发环境变化实践:如何解决“byte 不明确的符号”等抱错问题7 t( ]; ~7 c& w- D  P1 E: u9 Q
x
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!您需要 登录 才可以下载或查看,没有账号?注册 
  
 0 k; p- v* e+ v在NX2406后的版本进行开发环境升级编译会发现编译不通过(除了相关函数废弃需要更新外)在自身编译环境也存在诸多变化。/ x( r- E. D/ R
 % X+ E6 ~- j: ]  C7 e
 7 T; m: _# f; e* V8 p
 (1)Visual studio 选择 V143 ,之前版本 V142 ,否则在使用开发工具会出现版本兼容的提示
 " u, D* C- ]9 c  K# E3 @9 s, B2 x* P. ?
 
 ! J4 a0 g7 a1 _+ t1 ?- {6 N(2)C++的标准做了升级,需要使用C++17 的标准
 # ?. M) B5 m! }7 M+ r5 m) q6 b* S( d4 K6 r$ g- t, Y) R
 ( R& m3 b! W1 G
 
   , L9 d' b3 _/ p4 e
 / c1 |) b3 K4 X8 E7 h; }. t, V+ o" n. z, n) u  h3 j
 (3)正是因为标准的升级,会出现 “byte 不明确的符号”的抱错,主要原因是因为升级到C++17 出现了std::byte 的类型,而我们在开发过程中使用了 using namespace std;导致出现了冲突。在不使用这种类型的情况下,解决办法如下:
 2 ^* v, o, k1 s6 H, a8 W* R( g
 : @6 j- g/ v) ^
 * M% Y, w6 a. X) C; r% ~在预处理中加入:_HAS_STD_BYTE=0
 ( @4 ~! d. L6 t! n/ w
 & t, i3 y4 W% x  L7 c/ h, |$ F/ x& }" u9 l$ Q
 
     $ v+ P, H. }' w  I% [' _% E# j) V; V4 f5 C7 X! u! g; W+ w7 e
 / g9 O+ \9 g! a: h
 (4) UGopen的编译库发生变化,需要重新进行替换,具体替换做法,如何获取所有的lib文件名称,之前的文章有所提及,大家可以参考。# d! c+ o; T# U8 v6 `2 }5 O
 
 + q( x0 ~. S9 L8 `' n: p
 5 i3 ^) J5 ^. T3 @- x二次开发编译器Visual Studio版本匹配常见问题和解决方案
 4 M) q8 A0 t: L
 9 O8 @6 z' k: |0 ~
 6 O4 R: J7 {- }( H- g0 c, K5 `8 @* m
  3 w5 m8 u! \3 D4 b/ B( r0 n 2 P6 f" p/ ?/ _$ M% i! F7 q
 + u% t+ D- @$ A; E
 当然别忘记更新库目录环境的地址' B( O. Q& X' G: c9 H+ E1 ~5 Y
 6 d5 ~! F) x3 W" J- e
 + I" ~" y4 ~9 A' u+ |
 在解决上述问题后,编译基本能够通过,至于出现函数废弃的地方,需要根据开发实际情况,实用新的函数进行替换。( A. `, D" E, z8 |
 . U( d2 P4 ^+ c  K
 \7 X& }6 e8 J! n: j4 W9 U
 扫码关注微信公众号,获取更多内容
 / k8 I3 \1 U& g! c
 0 g' I4 f) _+ t- c0 E$ A+ k8 _, {0 R
 6 l& O$ ~/ B5 _: d5 n
 
 | 
 |