Hi!
Does anyone know a process (or is it possible at all) to load a custom operator (.so or .dll library compiled from c++) ‘dynamically’ when houdini is open?
I mean a node, from a .so or .dll file that would be place in the /dso/ folder, not an otl file.
Thanks
Ben
dynamic loading of custom operators (.so or .dll)
5970 2 0- Ben63
- Member
- 5 posts
- Joined: 6月 2011
- Offline
- Stalkerx777
- Member
- 183 posts
- Joined: 11月 2008
- Offline
- axebeak
- Member
- 51 posts
- Joined: 10月 2006
- Offline
There is probably no way to _load_ plugins once Houdini is already running, but at least in some cases they can be _reloaded_ with the following hack.
On Windows, open Python console, and type the following:
import _ctypes
handle = _ctypes.LoadLibrary(…your library path…)
_ctypes.FreeLibrary(handle)
If this the first reload during the session then invoke FreeLibrary once again.
Then recompile your plugin and do LoadLibrary etc.
On a Unix system use dlopen/dlclose instead, of course you can invoke load/free in any other way (calling external program etc), but it's already exposed via _ctypes (used by inlinecpp).
There are apparently limitations to this, e.g. you can't change operator name/label etc. but at least in some cases it works and it's faster than restart.
On Windows, open Python console, and type the following:
import _ctypes
handle = _ctypes.LoadLibrary(…your library path…)
_ctypes.FreeLibrary(handle)
If this the first reload during the session then invoke FreeLibrary once again.
Then recompile your plugin and do LoadLibrary etc.
On a Unix system use dlopen/dlclose instead, of course you can invoke load/free in any other way (calling external program etc), but it's already exposed via _ctypes (used by inlinecpp).
There are apparently limitations to this, e.g. you can't change operator name/label etc. but at least in some cases it works and it's faster than restart.
-
- Quick Links