在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
其实是以前博客的老贴子,太久没写博了,就粘贴过来点 自Max9开始,MaxScript可以直接调用.Net的dll文件,并且可以创建其中的类使用其中的方法。而.Net又可以调用C++编写的dll文件。于是可以使用C#对C++的代码封装一下,在max里调用。以下为范例。 ---------------以下为dll.def LIBRARY "Dll" EXPORTS --------------以下为dll.cpp文件内容 BOOL APIENTRY DllMain( HANDLE hModule, void HelloWorld( -------以下为c#的封装文件,编译为ImportDll.Dll using System; namespace ImportDll -------------然后可以在MaxScript中如此调用 DotNet.LoadAssembly (GetFilenamePath (GetSourceFileName()) + "ImportDll.dll") ------------------------ 这里我使用了序号导出的方式,如果不想用def文件以序号导出,可以使用 extern "C" 来以C语言的方式将方法导出,之所以这么做是因为C++的导出的方法名会与dll源文件中的名字不符。 至于为何要用.Net转而不直接用MaxSdk,唯一的好处是,这样可以不受版本限制,不用为各个不同版本建立工程编译。当然这个方法仅限于对max没什么操作的情况下的扩展,如果涉及对Max的操作,就只能老老实实用SDK |
请发表评论