在初接触OCX时,最困惑的是,自己声明一个非外部调用的变量或者方法时,有时候可以编译通过,有时候不行。而网上关于OCX资料又不多。今天试了一下,找了下原因。
首先情况是,我在.h的类中添加了一个属性,然后在对应的cpp文件中手写了一个函数(未在.h中添加声明,不是类函数),在这个函数中对该属性(不是作为参数传进来的)进行操作。然后就是编译报错了。而我之前在另一个OCX文件中的手写函数就可以直接运行(不对类属性进行操作)。
然后就把函数的声明添加进了.h中,编译通过。
写完文章,我才发觉,好像是属性作用域的问题,类的属性作用域应该只在类的方法中可以改。而我声明的属性 并不是一个全局变量,所以不能被一个全局的函数修改。但是如果我在全局函数中 使用一个类的对象调用该对象的属性的话,应该是可以的。智障了!