编写插件时候的基本问题
想写一个插件,SM_ComRegister.dll,在SM_ComRegister.cpp中有这么三行:
QT_BEGIN_NAMESPACE
Q_EXPORT_PLUGIN2(SM_ComRegister, PSM_ComRegister);
QT_END_NAMESPACE
但是编译的时候有错误,小弟找了很久,始终没有头绪,求指点啊。。。
Error 2 error C2065: 'SM_ComRegister' : undeclared identifier d:\project\arora\arora-0.11.0\src\SM_ComRegister.cpp 49 arora
Error 3error C2275: 'PSM_ComRegister' : illegal use of this type as an expressiond:\project\arora\arora-0.11.0\src\SM_ComRegister.cpp49SM_ComRegister
Error 4error C4430: missing type specifier - int assumed. Note: C++ does not support default-intd:\project\arora\arora-0.11.0\src\SM_ComRegister.cpp49SM_ComRegister
Error 5 error C2078: too many initializersd:\project\arora\arora-0.11.0\src\SM_ComRegister.cpp49SM_ComRegister
Error 6 error C2275: 'BrowserWidget' : illegal use of this type as an expressiond:\project\arora\arora-0.11.0\src\SM_ComRegister.cpp49SM_ComRegister
[解决办法]
现在我只能猜测 你贴的出错消息 并不是 你那3行代码产生的。估计是在报第二个参数的错误!!
去掉所有的:
QT_BEGIN_NAMESPACE
这样的东西在世。如果你不清楚或不理解这种语句是做什么的话!
[解决办法]
const QString sPluginVersion = "2.3.0.20111025";
改成const QString sPluginVersion = QString("2.3.0.20111025");
就不会被认成const char*了