内存访问问题

Memory access issue

本文关键字:问题 访问 内存      更新时间:2023-10-16

我的应用程序有问题- win32。我有客户端和服务器(没有连接到网络,只是名称)。客户端应用程序不是应用程序,它是工作在主应用程序中的插件。服务器应用程序是外部应用程序,它有封闭的源代码,可以从客户端回调函数。客户端(插件)通过"链接"(指向函数结构的指针)与MainApplication通信,并且可以发送指向指定已定义结构(已填充)的指针,例如:带有消息,日期和名称的结构。我可以修改插件的源代码。现在的问题是,服务器正在调用函数(例如,收到的消息),正在创建和填充那里的"消息结构",然后使用链接发送指向该结构的指针MainApplication崩溃,因为无法读取内存块。

服务器调用函数->创建和填充结构->通过链接向MainApplication发送该结构的指针->MainApplication试图读取内存地址并导致BAM崩溃

如果我手动做,从插件它工作。

我应该如何发送结构到主应用程序?MainApplication只能接收到结构的地址。可能有点混乱,但你应该理解问题

服务器调用函数向MainApplication发送该结构的指针可能是该服务器函数的本地指针。你可以动态地为那个指针分配内存空间,它会被分配,并有望传递给主应用程序。这不会使代码崩溃,因为您还没有从堆中释放内存,然后您可以在主应用程序使用指针

完成后从堆中释放内存。