我正在用 C++ 开发 2 个 Maya 插件,并且想从插件 #2 调用插件 #1 中的一个函数,并与函数一起发送参数。
调用者插件是 MPxNode,被调用插件应该是“通用”函数,其作用是创建一些渲染 VRayPlugins。
我应该如何继续声明和调用适当的函数?
无论您是在 Windows、OSX 还是 Linux 上运行,Maya 插件都与标准 DLL 没有什么不同。您可以在此处使用多种方法。您可以将实用程序 dll 链接到您的插件,只要操作系统可以找到它,只要插件在 Maya 中加载(与任何 DLL 一样,包括 Maya DLL),它就会在 Maya 地址空间中加载。另一种方法是从 DLL 中导出符号,但在运行时链接函数/类 (LoadLibrary() / GetProcAdress())。这一次,您需要自己加载实用程序 DLL,并在调用它们之前搜索导出签名。对于这两种方法,这是标准的 C++ 编程,对于 Maya 没有什么特别之处。
现在,如果您使用 Maya DG,您还可以考虑使用 MMessage / MPxNode 来传输和评估数据。这是特定于 Maya DG 和 API 的。但我不确定您是否需要上述复杂程度。