ctkPlugin框架启动崩溃
0.问题
调试时:遇到下面这句代码崩溃
ctkPluginFrameworkLauncher::start("org.commontk.eventadmin");
1. 准备
确保你的工程中有
(1)CTKCore.dll 必须
(2)CTKPluginFramework.dll 必须
如果要使用ctkPlugin事件通信,下面的(3)(4)(5)(6)必须要有
(3)liborg_commontk_configadmin.dll 可选
(4)liborg_commontk_eventadmin.dll 可选
(5)liborg_commontk_log.dll 可选
(6)liborg_commontk_metatype.dll 可选
如果这些都没问题,但还是会崩溃,那么还有最后一招,
就是,在你的工程下面有个生成路径下面的“configuration” 这个文件夹,把这个configuration文件夹删除,重新编译运行,ok
int Engine::init()
{
//获取插件所在位置
QString pluginPath = QDir::currentPath();
int pos = pluginPath.lastIndexOf("/");
pluginPath = pluginPath.left(pos);
int pos2 = pluginPath.lastIndexOf("/");
pluginPath = pluginPath.left(pos2);
pluginPath += "/Output/Bin/debug";
// 在插件的搜索路径列表中添加一条路径
ctkPluginFrameworkLauncher::addSearchPath(pluginPath);
// 设置并启动 CTK 插件框架
ctkPluginFrameworkLauncher::start("org.commontk.eventadmin");
// 获取插件上下文
ctkPluginContext* context = ctkPluginFrameworkLauncher::getPluginContext();
//ctkPluginFrameworkFactory frameworkFactory;
frameworkFactory_ = new ctkPluginFrameworkFactory;
QSharedPointer<ctkPluginFramework> framework = frameworkFactory_->getFramework();
// 初始化并启动插件框架
try {
framework->init();
framework->start();
qDebug() << "CTK plugin framework start...";