我有一个在maxscript脚本中创建的网格。
我想把它传递给我的C#代码,我只是不能得到正确的函数签名。
它使用一个void函数(代码被调用,我得到一个断点,字符串被传递回3dMax)。
我加载了我的DLL,创建了我的对象,并尝试将网格传递给函数,但是我得到了以下错误:
MAXScript MacroScript错误异常:--运行时错误:找不到匹配参数列表<<的方法
加载DLL的maxscript代码:
newMesh = mesh vertices:verts faces:faces
dotnet.loadassembly ( dllDir )
ThisTestObject = dotnetobject "_3dMaxExporter.Test" "test"
myText = ThisTestObject.TestFunc newMesh C#代码:
public string TestFunc(Autodesk.Max.IMesh test)
{
return ("You can call me " + Name + "!");
}你知道我需要什么类型的签名吗?
发布于 2018-01-31 18:09:38
无论是UIntPtr还是IntPtr。UIntPtr如果您想通过句柄传递它(getHandleByAnim MAXScript side,GetAnimByHandle(UIntPtr handle) .NET side),如果您想通过它的地址传递IntPtr (refs.getAddr MAXScript side,MarshalNativeToManaged方法Wrappers.CustomMarshalerMesh .NET side)。
https://stackoverflow.com/questions/48546023
复制相似问题