请问怎么读取CAD的系统变量呀?
我用下面的代码读取const char *p=NULL;
p = acdbHostApplicationServices()->get >getEnv("LTSCALE");
if (p != NULL)
acutPrintf("\n%s\n", p);
但读出来是空值呀,即那个p==NULL
怎么才能读出来?
thx 你把指针p声明为const类型,除了NULL,还能得到什么?把声明中的那个const去掉试试。
acdbHostApplicationServices类的成员函数定义:
const char* getEnv(const char *var);
后一个const表示函体内不能修改var指针的内容,第一个const表示函数的返回值是不能被修改的(即只读的)。因为C++的重载机制,getEnv()有可能要重载,这种const限制是必须的。
象你的代码中那样用const,就要求在程序中指针p始终指向NULL。
不过,我有点奇怪,你的编译器竟允许你对const指针赋值。 可以用下面的方法:
struct resbuf rb;
double dLTScale;
acedGetVar("LTSCALE",&rb);
dLTScale=rb.resval.rreal; leeyeafu发表于2003-11-4 9:55:00static/image/common/back.gif你把指针p声明为const类型,除了NULL,还能得到什么?把声明中的那个const去掉试试。
acdbHostApplicationServices类的成员函数定义:
const char* getEnv(const char *var);
后一个cons
我想你是搞错了,const char* p是指不能修改p指向的空间,但可以对p赋值的,char* const p的话才是不能修改p的指向,但可以修改p指向的空间。像前面的,如果变成
char *p的话,后面就要在getEnv加上const_cast<char*>才能通过编译的。 unionsoft发表于2003-11-4 11:50:00static/image/common/back.gif可以用下面的方法:
struct resbuf rb;
double dLTScale;
acedGetVar("LTSCALE",&rb);
dLTScale=rb.resval.rreal;
thx a lot!!想不明白getEnv为什么不行,看帮助说明好像可以的呀,搞到要去用ads
页:
[1]