• 5653阅读
  • 6回复

[已解决]这个头文件为什么在里面加上一个自定义槽会出问题? [复制链接]

上一主题 下一主题
离线chwoozy
 

只看楼主 倒序阅读 楼主  发表于: 2006-05-25
问题的症结找到了,因为我是用的Win下的MingW+Qt4,所以某些程序就必须在.pro文件里加上一句
  1. win32:DEFINES   += QT_DLL QWT_DLL

那个会导致出错的头文件代码如下:
  1. #ifndef MYPLOT_H
  2. #define MYPLOT_H
  3. #include <qwt_plot.h>
  4. using namespace std;
  5. class QwtPlotCurve;
  6. class MyPlot: public QwtPlot
  7. {
  8.   Q_OBJECT
  9. public:
  10.   MyPlot(QWidget *parent=NULL);
  11.   virtual ~MyPlot(){}
  12. public slots:
  13.   void setposition(double position);
  14. private:
  15.   void showData(double *frequency, double *amplitude,
  16.       double *phase, int count);
  17.  
  18.   QwtPlotCurve *d_crv1;
  19.   QwtPlotCurve *d_crv2;
  20. };
  21. #endif // MYPLOT_H

现在的问题是编译不会报错,但是在Windows下运行编译出来的程序时会报:
  1. 应用程序正常初始化(0xc00000005)失败

而删除掉里面的Q_OBJECT和public slots:两行,且在其它文件的代码中删掉与之相关的connect语句后则程序可以正常运行,不知道是什么原因?
[ 此贴被chwoozy在2006-05-25 17:19重新编辑 ]
离线sflute
只看该作者 1楼 发表于: 2006-05-25
请问你是否在工程中包含了moc文件?
离线chwoozy

只看该作者 2楼 发表于: 2006-05-25
问题已解决
[ 此贴被chwoozy在2006-05-25 16:28重新编辑 ]
离线guyansrg

只看该作者 3楼 发表于: 2006-05-25
问题是解决了,但产生的原因却不知道
下回还会出现的。所以一定要搞明白为什么会产生这个问题
这才是解决问题的上上之策
离线饭团儿
只看该作者 4楼 发表于: 2009-04-21
我也会出现类似问题,但我是在Linux编译的,能请教下原因吗?
离线foxyz

只看该作者 5楼 发表于: 2009-04-21
建议某些发帖的最好说明怎么解决的。

当然这个问题前边已经有同学说明原因了。

那就是 moc
离线饭团儿
只看该作者 6楼 发表于: 2009-04-21
谢谢
快速回复
限100 字节
 
上一个 下一个