C# 包装器和受保护内存的问题

发布于 2024-08-26 03:57:59 字数 630 浏览 8 评论 0原文

所以我现在已经有了一个几乎可以正常工作的包装器。
关于我的包装问题的其他帖子是:
C# 包装器和回调 &
三指针数组的 C# 包装器

我使用包装器建立一个使用以下命令连接到 Dallmeier:

_dallmeier.SessionHandle = DallmeierSDK.dlm_connect(_handle, _ip, "", _pass, null, null, connectionCallback, pInPut)  

这将返回会话处理程序。一段时间后,我收到有关尝试读取或写入受保护内存的 AccessVoilationException 异常。

我认为这与使用 Marshal.Read 和/或 Marshal.Copy (如上面的一篇文章所述)有关,但我不确定在哪里使用这些命令。

有人可以就此和/或示例向我提供建议吗?

So I've now progressed to having an almost functioning wrapper.
Other posts regarding my wrapper issues are:
C# wrapper and Callbacks &
C# wrapper for array of three pointers

I use the wrapper to establish a connection to the Dallmeier using the following:

_dallmeier.SessionHandle = DallmeierSDK.dlm_connect(_handle, _ip, "", _pass, null, null, connectionCallback, pInPut)  

This returns the session handler. After awhile I get a AccessVoilationException about attempted to read or write protected memory.

I think this has something to do with using Marshal.Read and/or Marshal.Copy (as stated in one of the posts above) but I'm not sure where I use these commands.

Can some please advise me on this and/or examples?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

厌味 2024-09-02 03:57:59

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

maybe you could try wrapping your code in a fixed block, to prevent moving the pointer in memory or being GC-collected.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文