关于com的一个牛逼的问题
这个问题有点长,再加上本人表达能力有限,所以文字有点长:
我写了一个读取数据的com组件,然后在MFC中调用该组件读取数据,当然我事先手动注册过该组件了,程序都写好之后,编译也没有错误,好了,执行的时候,提示“运行错误”,经测试,是提示没有注册,可是我明明已经注册过了,后来,我听师姐说要在app类的InitInstance()函数中加入AfxOleInit();这样一行代码,结果真的好了(但是我在我之前的那个电脑上运行的时候不加AfxOleInit();代码运行也是正确的),我运行,也有正确的运行结果,但是没有运行多久程序就崩溃了,我调试的时候,提示有行代码越界访问了,但是我查看了很久,发现根本没有越界访问,而且,这个程序在我之前的电脑上运行的时候(注意,之前的电脑没有加AfxOleInit()代码,运行正确,也没有在任何一行代码里提示越界访问),是没有错误的,为什么我换了个电脑,就加了一行AfxOleInit()代码就出现越界访问了呢?
我想了很久,我觉得问题就出在AfxOleInit()这行代码上,两个电脑上除了这行代码之外,其他的都一样,是不是加上这行代码之前的电脑上也加上会出现越界访问,然后我就找到之前的电脑,加上AfxOleInit();这句代码,运行的时候果然也出现越界访问错误,把我高兴的差点跳起来。
现在知道问题出现在哪儿了(我推断就是AfxOleInit();这行代码的问题,不知道各位大神的看法是???),然后是怎么去改了,去掉它吧,明明注册过的组件的组件却提示没有注册过,不去吧,它运行一会就崩溃了,没有办法交代!
怎么办?