所以我现在已经发展到拥有一个几乎正常运转的包装纸
关于我的包装问题的其他帖子是:
C# wrapper and Callbacks&
C# wrapper for array of three pointers
我使用包装器使用以下内容建立与Dallmeier的连接:
_dallmeier.SessionHandle = DallmeierSDK.dlm_connect(_handle, _ip, "", _pass, null, null, connectionCallback, pInPut)
这将返回会话处理程序。一段时间后,我得到一个关于尝试读取或写入受保护内存的AccessVoilationException。
我认为这与使用Marshal.Read和/或Marshal.Copy(如上面其中一篇文章中所述)有关,但我不确定我在哪里使用这些命令。
有人可以就此和/或例子告诉我吗?
答案 0 :(得分:1)
也许您可以尝试将代码包装在fixed
块中,以防止将指针移入内存或进行GC收集。