0

所以我现在已经有了一个几乎可以正常工作的包装器。
关于我的包装问题的其他帖子是:
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 (如上述帖子之一所述)有关,但我不确定我在哪里使用这些命令。

有人可以就这个和/或例子给我建议吗?

4

1 回答 1

1

也许您可以尝试将代码包装在一个fixed块中,以防止在内存中移动指针或被 GC 收集。

于 2010-06-14T20:23:26.930 回答