首页 新闻 赞助 找找看

看似不难却无比蛋疼的问题

0
悬赏园豆:20 [已解决问题] 解决于 2012-08-30 15:45

今天遇到个问题,还是搞不懂,来这里问一下。

就是我写了一个类(其实不算自己写,左抄抄,右抄抄),然后在另一个类中声明了这个类型的成员变量(私有),然后调用它的方法,第一次成功运行。后来加了东西,运行错误了。就把新加的东西全部删掉,再次运行,却发现原来正确的现在出现错误了:

然后把这个声明和其他调用到的函数全部注释掉,运行成功后把这些注释掉的东西在加上又成功运行了。我觉得很奇怪,又把它弄了点错误运行,然后再改回去,本来应该正确运行的又出现上面的错误。。。。。。不知道怎么回事。。。

问题简单点就是:成功运行之后再调用另一个类的方法就成功运行,改成错误运行之后改回来就出现上面错误了。。。

C++
问题补充:

还有,程序不是VC6项目用vs打开的,而是一开始就用vs写的。。。另外程序中用到了DirextShow.刚刚百度了好像跟DirectShow的配置有关。。。但是还没解决。。。

Y_H_T的主页 Y_H_T | 初学一级 | 园豆:184
提问于:2012-08-29 23:25
< >
分享
最佳答案
0

从你的错误来看,是某个类型未定义造成的,也就是没找到头文件,或者头文件引用顺序不正确,又或者没有正确使用namespace。

收获园豆:20
Launcher | 高人七级 |园豆:45045 | 2012-08-30 13:27

我可以查看头文件的文档,应该不是没找到头文件,至于“头文件引用顺序不正确”是指include包含的头文件顺序不对吗?我有试过改变顺序,但还是不行。。。

Y_H_T | 园豆:184 (初学一级) | 2012-08-30 13:50

@Y_H_T: 是指include的头文件顺序不对。找到头文件,并不代表正确引用了所有头文件,有些头文件会引用别的头文件。同时,你还应考虑命名空间的问题。

Launcher | 园豆:45045 (高人七级) | 2012-08-30 14:34

@Y_H_T: 还有条件编译,会注释掉某些类的申明。

Launcher | 园豆:45045 (高人七级) | 2012-08-30 14:35

@Launcher: 那要是程序中没有用到namespace也跟空间命名有关系么。。。我的程序是运行成功后加上那些代码之后也可以成功运行,但是一改成错误的运行一下再改回来就也跟着出现上面的错误了。。。

Y_H_T | 园豆:184 (初学一级) | 2012-08-30 15:27

@Launcher: 你说的条件编译的问题我再看一下,不过我有在"#ifndef ***  #define ***       #endif"这个语句块中写了3个类还有一个结构体。。。。。。不知道是不是这个的问题。。。

Y_H_T | 园豆:184 (初学一级) | 2012-08-30 15:30

@Launcher: 太开心了,成功了。。。谢谢你的提醒,是头文件的问题,因为我在那个类中包含了这个类的头文件,但包含了也没用到,然后又在这个类中包含了那个类的头文件。。。我把那个include的东东删掉了就行了。。。现在还故意改错几次运行再改回来发现都可以了。。。谢谢~~~

Y_H_T | 园豆:184 (初学一级) | 2012-08-30 15:43
其他回答(3)
0

求同解,求真相

louislwm | 园豆:206 (菜鸟二级) | 2012-08-29 23:35
0

还是语法错误

56180825 | 园豆:1756 (小虾三级) | 2012-08-30 08:05

不会吧,有时能运行呢。。。

支持(0) 反对(0) Y_H_T | 园豆:184 (初学一级) | 2012-08-30 10:51
0

问题代码都不给出么

飞鸟_Asuka | 园豆:209 (菜鸟二级) | 2012-08-30 08:35

 MP3_Sound mp3_sound;   就是这句,前面是类名,后面是变量名,代码应该没有问题的,因为有时运行成功,有时就出现上面的错误,不过错误是指向这里。

支持(0) 反对(0) Y_H_T | 园豆:184 (初学一级) | 2012-08-30 10:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册