当前位置:首页 > 技术手札 > 正文内容

NXOPEN二次开发之获取环境变量值混乱

秋风渡红尘4年前 (2021-08-29)技术手札1523

        看标题就知道顾名思义了,这是getenv()的一个坑。

char* appdata = getenv("APPDATA");
        很简单的一句,乍一看没问题是不是?一开始我也觉得是,首次运行起来也好好的。

        但是,因为是开发的插件,主程序我一般是不关闭的,那么再第二次运行插件的时候,好戏上场了:正常来说appdata应该是

C:\Users\用户名\AppData\Roaming

        拿到appdata后,就用来做别的事,当然没对appdata进行改动,仅仅是赋值给其它变量,偏偏第二次运行的时候,appdata就变了,变成了我新建的目录和文件路径,例如

C:\Users\用户名\AppData\Roaming\Plugin\XXXX.TXT

        很奇怪是不是?然后我直接打印getenv(“APPDATA”),发现它也变成了文件路径!

        经过连续两天检查代码,我直觉告诉我代码逻辑没问题,是getenv()在作妖!

        然后找了替代,那就是_dupenv_s

char *appdata;
size_t len;
errno_t err = _dupenv_s( &appdata, &len, "APPDATA" );
        然后世界又变得美好了!

扫描二维码推送至手机访问。

版权声明:本文由咿呀贝发布,如需转载请注明出处。

本文链接:https://yiyabei.cn/?id=67

标签: UGNXNXOPEN
分享给朋友:

相关文章

UG NX8.0永久性修改背景颜色

UG NX8.0永久性修改背景颜色

一、永久修改默认配置: 文件→实用工具→用户默认配置→基本环境→可视化→背景色 设置好颜色后确定,会提示重启后生效。   重启后发现背景设置无效,在 首选项→背景→...

vmware虚拟机安装photoshop CC2014失败

vmware虚拟机安装photoshop CC2014失败

        今天在VMware虚拟机上安装photoshop CC2014,在进入安装进度时提示安装失败。 起初以为是安...

工作站T7810重装系统注意事项

工作站T7810重装系统注意事项

        dell的工作站T7810(Dell Precision Tower 7810)由于使用了磁盘阵列技术,在重装系统时发现会找不到任何驱动设备。...

360随身wifi 3代当作无线网卡无法联网

360随身wifi 3代当作无线网卡无法联网

前置条件: 无线网卡硬件 360随身WIFI 3代 驱动...

ubuntu VPS 安装LXDE+VNC桌面 附配Firefox浏览器及简体中文

ubuntu VPS 安装LXDE+VNC桌面 附配Firefox浏览器及简体中文

apt-get install xorg lxde-core tightvncserver tightvncserver :1 tightvncserver -kill :1 vi ~/.vnc/xstartup 添加 lxter...

QT编译的程序中文乱码

QT编译的程序中文乱码

在主程序加入 QTextCodec::setCodecForLocale(QTextCodec::codecForName("utf-8"));...