乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 72|回复: 4

请问怎么读取CAD的系统变量呀?

[复制链接]

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2003-11-4 09:20:00 | 显示全部楼层 |阅读模式
我用下面的代码读取
const char *p=NULL;
p = acdbHostApplicationServices()->get >getEnv("LTSCALE");
if (p != NULL)
   acutPrintf("\n%s\n", p);
但读出来是空值呀,即那个p==NULL
怎么才能读出来?
thx
回复

使用道具 举报

14

主题

230

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
286
发表于 2003-11-4 09:55:00 | 显示全部楼层
你把指针p声明为const类型,除了NULL,还能得到什么?把声明中的那个const去掉试试。
acdbHostApplicationServices类的成员函数定义:
const char* getEnv(const char *var);
后一个const表示函体内不能修改var指针的内容,第一个const表示函数的返回值是不能被修改的(即只读的)。因为C++的重载机制,getEnv()有可能要重载,这种const限制是必须的。
象你的代码中那样用const,就要求在程序中指针p始终指向NULL。
不过,我有点奇怪,你的编译器竟允许你对const指针赋值。
回复

使用道具 举报

1

主题

32

帖子

4

银币

初来乍到

Rank: 1

铜币
36
发表于 2003-11-4 11:50:00 | 显示全部楼层
可以用下面的方法:
struct resbuf rb;
double dLTScale;
acedGetVar("LTSCALE",&rb);  
dLTScale=rb.resval.rreal;
回复

使用道具 举报

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2003-11-5 14:20:00 | 显示全部楼层

我想你是搞错了,const char* p是指不能修改p指向的空间,但可以对p赋值的,char* const p的话才是不能修改p的指向,但可以修改p指向的空间。像前面的,如果变成
char *p的话,后面就要在getEnv加上const_cast才能通过编译的。
回复

使用道具 举报

2

主题

4

帖子

1

银币

初来乍到

Rank: 1

铜币
12
发表于 2003-11-5 14:22:00 | 显示全部楼层

thx a lot!!想不明白getEnv为什么不行,看帮助说明好像可以的呀,搞到要去用ads
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 15:01 , Processed in 0.162023 second(s), 62 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表