sailorcwx 发表于 2010-11-23 12:26:00

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

<p>很奇怪的问题,附件的程序为什么会对变量定义两次呢?导致我的<font face="Verdana">IExtensionApplication</font>接口里面的赋值没有用了?</p>
<p>第一次是netload的时候在断点的地方断下</p>
<p>第二次是在第一个命令运行的时候又断了一下,说明对全局变量重新定义了一次。<br/>测试环境:VS2010+autocad2010</p>

雪山飞狐_lzh 发表于 2010-11-23 12:39:00

<p>a只是成员变量,而不是全局变量</p>
<p>静态才是</p>
<p>static a;</p>

sailorcwx 发表于 2010-11-23 13:53:00

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

雪山飞狐_lzh 发表于 2010-11-23 16:10:00

<p>加载dll时,cad会首先搜索<font face="Verdana">IExtensionApplication</font>,并生成<font face="Verdana">Class1 </font>的实例1,运行<font face="Verdana">Initialize</font>函数,这是第一次</p>
<p>运行命令时,cad会再次生成一个<font face="Verdana">Class1 </font>的实例2,这是第二次</p>

sailorcwx 发表于 2010-11-23 16:18:00

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

雪山飞狐_lzh 发表于 2010-11-23 17:49:00

把静态变量放到另外一个类里去

sailorcwx 发表于 2010-11-23 20:27:00

<p>可以了,我把这些变量全部改成静态变量了。放到另一个类里比较麻烦。</p>
页: [1]
查看完整版本: 为什么会对变量定义两次呢?