今天遇到个问题,还是搞不懂,来这里问一下。
就是我写了一个类(其实不算自己写,左抄抄,右抄抄),然后在另一个类中声明了这个类型的成员变量(私有),然后调用它的方法,第一次成功运行。后来加了东西,运行错误了。就把新加的东西全部删掉,再次运行,却发现原来正确的现在出现错误了:
然后把这个声明和其他调用到的函数全部注释掉,运行成功后把这些注释掉的东西在加上又成功运行了。我觉得很奇怪,又把它弄了点错误运行,然后再改回去,本来应该正确运行的又出现上面的错误。。。。。。不知道怎么回事。。。
问题简单点就是:成功运行之后再调用另一个类的方法就成功运行,改成错误运行之后改回来就出现上面错误了。。。
还有,程序不是VC6项目用vs打开的,而是一开始就用vs写的。。。另外程序中用到了DirextShow.刚刚百度了好像跟DirectShow的配置有关。。。但是还没解决。。。
从你的错误来看,是某个类型未定义造成的,也就是没找到头文件,或者头文件引用顺序不正确,又或者没有正确使用namespace。
我可以查看头文件的文档,应该不是没找到头文件,至于“头文件引用顺序不正确”是指include包含的头文件顺序不对吗?我有试过改变顺序,但还是不行。。。
@Y_H_T: 是指include的头文件顺序不对。找到头文件,并不代表正确引用了所有头文件,有些头文件会引用别的头文件。同时,你还应考虑命名空间的问题。
@Y_H_T: 还有条件编译,会注释掉某些类的申明。
@Launcher: 那要是程序中没有用到namespace也跟空间命名有关系么。。。我的程序是运行成功后加上那些代码之后也可以成功运行,但是一改成错误的运行一下再改回来就也跟着出现上面的错误了。。。
@Launcher: 你说的条件编译的问题我再看一下,不过我有在"#ifndef *** #define *** #endif"这个语句块中写了3个类还有一个结构体。。。。。。不知道是不是这个的问题。。。
@Launcher: 太开心了,成功了。。。谢谢你的提醒,是头文件的问题,因为我在那个类中包含了这个类的头文件,但包含了也没用到,然后又在这个类中包含了那个类的头文件。。。我把那个include的东东删掉了就行了。。。现在还故意改错几次运行再改回来发现都可以了。。。谢谢~~~
求同解,求真相
还是语法错误
不会吧,有时能运行呢。。。
问题代码都不给出么
MP3_Sound mp3_sound; 就是这句,前面是类名,后面是变量名,代码应该没有问题的,因为有时运行成功,有时就出现上面的错误,不过错误是指向这里。