vs 修改系统环境变量putenv、_putenv
2024-01-08 20:39:09
事情起因是某一天需要在vs2010的工程中去动态配置adb环境变量,win10环境
一开始,使用了putenv,很快进入代码调试,死活无法达成目的(奇怪的是另外一个工程就能修改成功)
一番面向运气编程,最后用_putenv实现了配置环境变量。
但不知道根本原因是啥,做出一些猜想:
putenv已经被取代,在某些场景下用不了,只能用_putenv,下面是官方说明文档里面的内容
下面的是代码
char szbuffer [2048] = {0};
CString str;
std::string strPath = getenv("PATH");
str = strPath.c_str();
str = _T("PATH=") + str + _T(";D:\AdbPath");
CoverCStringToChar(str,szbuffer,2048);
_putenv(szbuffer);
std::string strTemp = getenv("PATH");
//字符转换
int CoverCStringToChar(const CString &strsrc,char *szdet,int len)
{
int n = strsrc.GetLength();
int charlen = 0;
int lenByte = WideCharToMultiByte(CP_ACP, 0, strsrc, n, NULL, 0, NULL, NULL);
charlen = WideCharToMultiByte(CP_ACP, 0, strsrc, n, szdet, lenByte, NULL, NULL);
return charlen;
}
附加说明
putenv, _putenv, _tputenv, _wputenv:修改一个操作系统环境变量的值,只是针对当前进程有效
?_putenv_s、_wputenv_s?是这些函数的更安全版本
文章来源:https://blog.csdn.net/Super_Jadroid/article/details/135464295
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!