如何修复使用nwCreate时遇到的System.AccessViolationException



我们使用NwCreate API来创建几何体。我们的应用程序在第一次运行时成功地执行并生成了所需的输出,但在下一次执行时,它会抛出AccessViolationException错误。无论我们在后续运行中使用相同的数据还是不同的值,都会发生这种情况。

我们的代码基于这篇博客文章中的示例:https://adndevblog.typepad.com/aec/2012/07/nwcreate-color-of-geometry-does-not-take-effect-on-cylinder.html

我观察到,如果我们删除此代码以添加材质颜色属性,则不会出现此错误。

LiNwcNodeAddAttribute(geom, _material);

我已经跟踪了我们正在创建的所有句柄,并验证了我们正在销毁所有创建的句柄。

这是我们得到的错误的全文:System.AccessViolationException:"试图读取或写入受保护的内存。">

其他人遇到过类似的问题吗?您能提供任何故障排除建议吗?

找到原因,spoolID先前已被销毁

LtNwcData spoolID = LiNwcDataCreate();
LiNwcDataSetInt32(spoolID, arr_spool_ids[i]);
LiNwcDataDestroy(spoolID);
LtNwcData constructionComponentID = LiNwcDataCreate();
//this was the error, using spoolID here (it was already destroyed):
//  LiNwcDataSetInt32(spoolID, arr_cc_ids[i]);
//fix was to change to this:
LiNwcDataSetInt32(constructionComponentID, arr_cc_ids[i]);

相关内容

最新更新