概述
将dll作为mse文件
使用filein就能载入dll文件,简化交付、简化调用
同时也是兼容替换3dmax2026新运行时动态编译的方案之一
打包脚本
| fn build = |
| ( |
| global Cmxs6Publisher, Cmxs6SettingsModel |
| global cmxs6_cli_mode = true |
| local curDir = getFilenamePath (getThisScriptFilename()) |
| filein cmxsProgramFile |
| --配置 |
| config = Cmxs6SettingsModel() |
| config.InputFile = curDir + "YourWrapperScript.ms" |
| config.AddResourcesFile (curDir + @"your.dll") releaseName:"new_name.dll" compress:true writeToLocal:false |
| -- |
| global result = Cmxs6Publisher._build config |
| --ShellLaunch (getFilenamePath result) "" |
| -- |
| filein result |
| ) |
| |
| |
| build() |
| |
包装脚本 YourWrapperScript.ms
| global YourNamespace_YourClassName |
| |
| fn __load = |
| ( |
| product = Cmxs6Container.MxsRuntime.Call "LastTool" |
| bytes = product.Call "GetResources" @"new_name.dll" |
| asm = (dotnetClass "System.Reflection.Assembly").Load bytes |
| ---- |
| global YourNamespace_YourClassName= asm.createInstance "YourNamespace.YourClassName" |
| |
| print ("Load Ok") |
| ) |
| |
| try( |
| __load() |
| )catch(print ("Load ERR: " + getCurrentException())) |
| |
调用
| |
| |
| |
| global YourNamespace_YourClassName |
| |
| |
| filein (@"YourWrapperScript.mse") |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步