This feature is accepted. I'm implementing in this week. My idea is using plugin's CLSID cache which is auto generated when delay-loading plugins are ready to load first time. A delay-loading plugin which filename is configged in INI file is really loaded when it's object is creating.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I think that ini file is redundant some extent. It 's inconvenient to reuse plugin with a ini file. On the other hand, the developers of plugin rather than users of the plugin know whether it could be delay-loaded.So my suggestion is to implement this configuration in the code of plugin .
PS: To get a globally recognized avatar at http://en.gravatar.com/ , then head portrait will be appeared automatically :-)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In revision 48 the delay-loaded plugin is really loaded only when it's first object is created, so there is a problem for observer plugins which should be loaded to receive event even no object is created.
I've modified ChangeManager plugin to let these observer plugins are loaded before the specified event occurs.
This day, I have tested the feature of delay-loaded in the project of SimpleApp. And I found three problems as following:
1. In function Cx_PluginLoader::LoadPluginOrDelay
this line: if (FindModule(GetModuleHandleW(filename)) >= 0). That may cause plugin couldn't loaded.
In the morning, It's a bug. Nevertheless, it 's fixed now :-)
2. The ecode of ini file must be Unicdoe. If the encode is set to be cp936 or Utf-8,GetPrivateProfileSectionW(sectionName, buf, size, iniFile) return zero.
3. When I compiled the project of UnitTest, a error was reported as that:
"trunk\code\pkg_unittest\modules\public\stdafx.h(40) : fatal error C1083: 无法打开包括文件:“cppunit/TestCase.h”: No such file or directory".
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Delay-load plugin, that could short the startup time,especially in the case of many plugins needing to be loaded.
useful and cool !
Maybe we could port the feature from DOM Framwork in Fit.
This feature is accepted. I'm implementing in this week. My idea is using plugin's CLSID cache which is auto generated when delay-loading plugins are ready to load first time. A delay-loading plugin which filename is configged in INI file is really loaded when it's object is creating.
Expecting the implementation of the feature ……
I think that ini file is redundant some extent. It 's inconvenient to reuse plugin with a ini file. On the other hand, the developers of plugin rather than users of the plugin know whether it could be delay-loaded.So my suggestion is to implement this configuration in the code of plugin .
PS: To get a globally recognized avatar at http://en.gravatar.com/ , then head portrait will be appeared automatically :-)
It seems no way to implement the delay-loaded feature without a configure file.
This blog post inspired me:http://www.uieasy.com/cn/blog/?p=148
This feature has implemented (rev 48). Please review: http://x3c.svn.sourceforge.net/viewvc/x3c?view=rev&revision=48
In revision 48 the delay-loaded plugin is really loaded only when it's first object is created, so there is a problem for observer plugins which should be loaded to receive event even no object is created.
I've modified ChangeManager plugin to let these observer plugins are loaded before the specified event occurs.
Thanks for reviewing: http://x3c.svn.sourceforge.net/viewvc/x3c?revision=51&view=revision
This day, I have tested the feature of delay-loaded in the project of SimpleApp. And I found three problems as following:
1. In function Cx_PluginLoader::LoadPluginOrDelay
this line: if (FindModule(GetModuleHandleW(filename)) >= 0). That may cause plugin couldn't loaded.
In the morning, It's a bug. Nevertheless, it 's fixed now :-)
2. The ecode of ini file must be Unicdoe. If the encode is set to be cp936 or Utf-8,GetPrivateProfileSectionW(sectionName, buf, size, iniFile) return zero.
3. When I compiled the project of UnitTest, a error was reported as that:
1. A plugin do not allow be loaded repeated.
2. It's right on my computer (Win7, ANSI file). You can save INI file in UNICODE if failed.
3. You need download cppunit include files:
http://sourceforge.net/projects/cppunit/files/cppunit/1.12.1/
\\dampub\Tools\CodeCheck\C++\CppUnit\cppunit-1.12.1\include\cppunit\
http://files.cnblogs.com/rhcad/cppunit-1.12.1-vc689&gcc.zip