明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1585|回复: 6

为什么会对变量定义两次呢?

[复制链接]
发表于 2010-11-23 12:26:00 | 显示全部楼层 |阅读模式

很奇怪的问题,附件的程序为什么会对变量定义两次呢?导致我的IExtensionApplication接口里面的赋值没有用了?

第一次是netload的时候在断点的地方断下

第二次是在第一个命令运行的时候又断了一下,说明对全局变量重新定义了一次。
测试环境:VS2010+AutoCAD2010

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2010-11-23 12:39:00 | 显示全部楼层

a只是成员变量,而不是全局变量

静态才是

static a;

 楼主| 发表于 2010-11-23 13:53:00 | 显示全部楼层

问题是为什么会对a进行两次定义呢?

发表于 2010-11-23 16:10:00 | 显示全部楼层

加载dll时,cad会首先搜索IExtensionApplication,并生成Class1 的实例1,运行Initialize函数,这是第一次

运行命令时,cad会再次生成一个Class1 的实例2,这是第二次

 楼主| 发表于 2010-11-23 16:18:00 | 显示全部楼层

那如何避免对a进行两次定义呢,因为我在Initialize函数里面对a进行了赋值,第二次定义又把原值恢复了,导致后面的程序出现错误

发表于 2010-11-23 17:49:00 | 显示全部楼层
把静态变量放到另外一个类里去
 楼主| 发表于 2010-11-23 20:27:00 | 显示全部楼层

可以了,我把这些变量全部改成静态变量了。放到另一个类里比较麻烦。

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 01:58 , Processed in 0.187055 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表