请各位提供思路,和例子。
解决方案 »
- .ico是那个类封装的?//那个函数是设置.ico图标为透明色的函数?
- GetFileVersionInfo的具体用法?
- 怎么把Dialog里的Clist Ctrl传递到别的类中?
- 声明的\是什么意思?
- 这个为什么屏幕打印不出结果?
- 关于怎样使用全局变量及全局函数的问题
- “X:\System Volume Information”这个目录是做什么用的?
- 向access2000中写入数据(字段为ole),大侠指教!
- oracle基础问题
- 代码在一个vs08环境下能编译成功,新建工程后复制过去却提示编译失败了,提示:error C2275: “SOCKET”: 将此类型用作表达式非法.....
- ado的速度问题,非常着急
- #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")一定要绝对路径吗
VCKBASE
环境变量由一对字符串组成,格式为:变量=关联值。例如,PATH=C:\WINDOWS 在DOS和WINDOWS中,你可以从命令行或在批处理文件中定义环境变量,方法是使用SET命令,后面跟赋值表达式。下面是一个创建环境变量的例子,SET VERSION=1.1.3在Unix中可以省略前面的SET,写为:VERSION=1.1.3读取环境变量 程序只有在启动时才能访问到环境变量,环境变量由一个字符串数组构成,其形式为“VAR=value”。可以用getenv()和putenv()函数从程序中访问环境变量。ANSI C 的函数getenv()提供了轻松简便的访问环境变量的方法,这个函数在
<stdlib.h>中声明,原型如下:char * getenv(const char * name);如果函数调用成功,它返回环境变量的字符串值。如果变量没有被定义,函数返回空(NULL)。例如:
#include <stdlib.h>
#include <stdio.h>
int main()
{
char * descr = getenv("PATH");
if (descr)
printf("value of PATH is: %s", descr);
else
printf("variable not defined");
}
设置环境变量 为了定义环境变量或者改变现存的变量值,使用putenv()函数。这个函数不是由标准的ANSI/ISO定义的。在实际应用中,Unix和Windows都将这个函数作为非标准扩展定义在<stdlib.h>文件中,它是可移植的。其原型如下:int putenv(const char * var); 参数var必须是字符串,而且格式必须是“VAR=VAL”。putenv()将变量VAR添加到当前的环境变量中,并赋值VAL。如果变量已存在, putenv()覆盖现存的值。如果你不想覆盖现存变量的值,就先调用getenv()来检查变量是否存在,然后再调用putenv()。下面的例子是添加一个名为TEMP的环境变量,赋值为C:\TEMP(注意反斜杠在C/C++字符串中的表示方法)。如果调用成功,putenv()返回0,否则返回-1。
int stat = putenv("TEMP=C:\\TEMP");
if (!stat)
{
printf("环境变量定义失败");
}
支持大字符集变量Win32中也能定义getenv()和putenv()的大字符集版本。注意_wputenv()使用于NT和Win2000:wchar_t * _wgetenv(const wchar_t * name);
int _wputenv(const wchar_t * var);环境变量的使用 环境变量的作用就是你不用改变源文件,不用重编译便可以控制程序的行为。例如,你可以通过定义环境变量控制程序是否显示debug信息。,如果你需要在客户处进行debug输出,环境变量就特别有用,以下就是一个这方面的例子,如果定义了环境变量DBG:
void func(); #include <stdlib.h>
#include <stdio.h>
int main()
{
bool debug=false;
if (getenv("DBG"))
debug=true;
if (debug)
printf("calling func");
func();
if (debug)
printf("returned from func");
}
本文系 VCKBase 8 的文章,特此注明