首页 > 解决方案 > 如何调试发布

问题描述

我有一个调试 .dll 构建,它使用 libcurl 发送 HTTP 请求,一切正常。

随着发布,使用我的.dll的程序不喜欢它,程序制造商建议将libcurl.dll设置为延迟加载,并调用LoadLibrary

所以我做了这个 LoadLibrary(TEXT("C:\\Users\\user\\Documents\\VirtualDJ\\Plugins64\\SoundEffect\\libcurl.dll")); 并将链接器>输入>延迟加载的dll指向libcurl.dll [字面意思是]

它使插件再次兼容,但我不再获得通信。我不确定如何进行。

我的 LoadLibrary 语法是否正确?有人告诉我调试版本,我遵循了所有这些属性更改 https://docs.microsoft.com/en-us/cpp/build/how-to-debug-a-release-build?view=msvc- 160 ,但我不明白您将如何运行该版本。

我对此很陌生,所以解释得越简单越好。C++ 视觉工作室 19

标签: c++visual-studio-debugging

解决方案


根据https://docs.microsoft.com/en-us/cpp/build/reference/linker-support-for-delay-loaded-dlls?view=msvc-160,延迟加载的 dll 有您应该考虑的细微差别。我没有使用这个,但我LoadLibrary/GetProcAdress/FreeLibrary一直使用没有任何问题,所以我建议你尝试这种方式。您可以尝试在 WinDbg 中调试版本。只需要设置源代码和 PDB 文件的路径。有时 WinDbg 可能比 Visual Studio 更有用。有关 WinDbg 的更多详细信息https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools


推荐阅读