1
我明顯在做一些非常愚蠢的事情。出於某種原因,我無法通過Qt發出自定義信號。我得到的錯誤是:編譯時的信號/插槽錯誤
.\PBSPPTimeDelayServer.cpp(234) : error C3861: 'sig_tickExpicit': identifier not found
我已經清理並重建項目以及檢查MOC文件的適當信號;它在那裏。
在此先感謝,我確定這只是一個小類型,但我不知道。
PBSPPTimeDelayServer.h
// Libraries
#include <QObject>
#include "PBSPipelineProcessorInOut.h"
#include "POMRegistryConfiguredObject.h"
// Interfaces
#include "IPOMPipelineProcessor2InOut.h"
#include "IPOMPipelineProcessor2In.h"
class CPBSPPTimeDelayServer : public QObject,
public CPBSPipelineProcessorInOut,
public IPOMPipelineProcessor2InOut,
public CPOMRegistryConfiguredObject
{
Q_OBJECT
市民:
////////////////////////////////////////////////////////////////////
///\name Construction/Destruction
//@{
///Default Constructor
CPBSPPTimeDelayServer();
///Destructor
~CPBSPPTimeDelayServer();
//@}
////////////////////////////////////////////////////////////////////
...
signals:
void sig_tickExplicit(const quint64 nNT);
PBSPPTimeDelayServer.cpp
HRESULT CPBSPPTimeDelayServer::getSurfaces(IPBSPinOut* pPin, CPBSSurfaceArgs& args)
{
// Pump components
if(!m_pPrivateData->m_liDolphinPumpClients.isEmpty())
{
quint64 nNT[2];
args.getNTPump().getNTArray(nNT);
for (QList<IPBSDolphinPumpClient*>::const_iterator i = m_pPrivateData->m_liDolphinPumpClients.constBegin();
i != m_pPrivateData->m_liDolphinPumpClients.constEnd(); ++i)
{
HRESULT hr = (*i)->pump(nNT);
}
emit sig_tickExpicit(nNT[0]);
}
// Get surface from upstream
return getInputByIndex(0)->getSurfaces(args);
}
信號名稱是'sig_tickExplicit'而不是'sig_tickExpicit'。它包含'l' :) – Ashot
基督,我怎麼能做出這樣一個愚蠢的錯誤?非常感謝你! – jhammond