使用共享指针从 DLL 接收数据的数据损坏

Corrupted data receiving data back from a DLL Using a Shared Pointer

提问人:Cucchi 提问时间:10/22/2023 更新时间:10/22/2023 访问量:9

问:

我们正在用 c++ 开发一个新项目,在该项目中,我们正在与具有显式连接的 DLL 进行通信。我们正在主机调用设备中创建内存,并将共享指针传递给 DLL,以允许它将数据写入主机内存。当我们监控返回监视窗口的数据时,我们会看到数据,起初看起来不错,然后由于某种莫名其妙的原因,数据被丢弃了。所以它确实在一段时间内看起来很合适,然后它变得不稳定。DLL 只传输一次,这就是我们从设备请求的全部内容。每件事都说问题出在主机端,因为数据在分崩离析之前看起来很正常。我们一开始使用标准指针,并将其换成共享指针。我们担心指针可能已损坏,但这似乎不太可能,因为我们最初确实收到了数据,我正在寻找对可能发生的事情的一点见解,或者一些可能有助于解决问题的第三方工具。我们正在使用 Visual Studio 最新添加的内容。此致敬意

我们创建了另一个测试 Dll 项目,其中包含略微修改的收集系统。对此进行测试,我们没有问题,但返回的是虚拟数据。真正的系统连接到工业传感器进行输入,似乎工作正常,并且重复数据最初似乎很好。它闻起来像是内存被一个坏指针破坏了,但我们只从 DLL 中收集一次。有没有一种方法可以保护内存,以及何时更改内存以以某种方式在异常块中捕获它。软件工具或一些代码创意。此致敬意

内存 DLL 共享 PTR 损坏

评论


答: 暂无答案