AlphaWolf
20th April 2009, 17:11
I have this method:
void initialize(unsigned long hwnd, int width, int height)
I am trying to invoke this method using QMetaObject::invokeMethod
QMetaObject::invokeMethod(m_pOgreManager, "initialize", Q_ARG("usigned long", (unsigned long)renderWidget->winId()), Q_ARG("int", renderWidget->width()), Q_ARG("int", renderWidget->height()));
initialize is a public Member of OgreManager where m_pOgreManager is a pointer to a instance of OgreManager.
But it does not compile:
1>uglyviewer.cpp
1>.\src\uglyviewer.cpp(34) : error C2974: "QReturnArgument": Ungültiges template-Argument für "T", Typ erwartet.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(269): Siehe Deklaration von 'QReturnArgument'
1>.\src\uglyviewer.cpp(34) : error C2955: "QReturnArgument": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(269): Siehe Deklaration von 'QReturnArgument'
1>.\src\uglyviewer.cpp(34) : error C2974: "QArgument": Ungültiges template-Argument für "T", Typ erwartet.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2955: "QArgument": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2974: "QArgument": Ungültiges template-Argument für "T", Typ erwartet.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2955: "QArgument": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2974: "QArgument": Ungültiges template-Argument für "T", Typ erwartet.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2955: "QArgument": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
void initialize(unsigned long hwnd, int width, int height)
I am trying to invoke this method using QMetaObject::invokeMethod
QMetaObject::invokeMethod(m_pOgreManager, "initialize", Q_ARG("usigned long", (unsigned long)renderWidget->winId()), Q_ARG("int", renderWidget->width()), Q_ARG("int", renderWidget->height()));
initialize is a public Member of OgreManager where m_pOgreManager is a pointer to a instance of OgreManager.
But it does not compile:
1>uglyviewer.cpp
1>.\src\uglyviewer.cpp(34) : error C2974: "QReturnArgument": Ungültiges template-Argument für "T", Typ erwartet.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(269): Siehe Deklaration von 'QReturnArgument'
1>.\src\uglyviewer.cpp(34) : error C2955: "QReturnArgument": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(269): Siehe Deklaration von 'QReturnArgument'
1>.\src\uglyviewer.cpp(34) : error C2974: "QArgument": Ungültiges template-Argument für "T", Typ erwartet.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2955: "QArgument": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2974: "QArgument": Ungültiges template-Argument für "T", Typ erwartet.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2955: "QArgument": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2974: "QArgument": Ungültiges template-Argument für "T", Typ erwartet.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'
1>.\src\uglyviewer.cpp(34) : error C2955: "QArgument": Für die Verwendung der template-Klasse ist eine template-Argumentliste erforderlich.
1> c:\qt\4.5.0\include\qtcore\../../src/corelib/kernel/qobjectdefs.h(259): Siehe Deklaration von 'QArgument'