gpt4 book ai didi

c++ - 在 Visual C++ Windows 窗体应用程序中实现 Bonjour SDK

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:14 24 4
gpt4 key购买 nike

我已经在 visual c++ 控制台应用程序中成功实现了 bonjour sdk。但是当我试图在 Windows 窗体应用程序 (visual c++) 中实现相同的代码时,我收到了奇怪的错误,可能与 bonjour dll 的一些本地堆问题有关。

文件 dbgheap.c 中的以下断言失败:

/*
* If this ASSERT fails, a bad pointer has been passed in. It may be
* totally bogus, or it may have been allocated from another heap.
* The pointer MUST come from the 'local' heap.
*/
_ASSERTE(_CrtIsValidHeapPointer(pUserData));

如果有人知道一些处理此类问题的资源,那将非常有帮助。

非常感谢您的帮助

最佳答案

您没有向我们提供太多信息,但可以从这一点开始寻找:

it may have been allocated from another heap

您正在释放 Bonjour 分配的对象吗? bonjour.dll 链接到哪个 C 运行时库?您是否在表单应用程序中使用相同的应用程序(DLL 或静态、多线程或非多线程、调试或发布)?您使用的是否与控制台应用程序中的相同?

一般来说,出于这种原因释放在其他 dll 中分配的内存是个坏主意。是否没有可以调用的 BonjourFree 函数来释放在 Bonjour 中分配的对象?

或者,您可能会溢出缓冲区并在 Bonjour 上独立地覆盖调试内存分配边界。尝试查看失败释放处的内存,看看它看起来是否正确。

关于c++ - 在 Visual C++ Windows 窗体应用程序中实现 Bonjour SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3805962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com