c++ - 如何调试发布
问题描述
我有一个调试 .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
解决方案
根据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
推荐阅读
- react-native - 如何在本机反应中隐藏和显示按钮单击视图?
- django - 归档、处理相关的删除
- python-3.x - 如何基于多个字段分组并显示所有列
- android - 阅读 arduino 在 android 上制作的 html 代码
- c# - Unity 中的网格分析着色器,类似于运行时的 Blender 网格分析
- javascript - 如何根据 cookie 值从页面中删除元素?
- testing - 在使用 1 个线程进行一个循环并在线程组内使用吞吐量控制器时,测试计划未得到执行
- css - 如何在反应样式的组件中添加“标题”标签(用于工具提示)
- laravel - Vuejs public 文件夹 vs laravel storage/app/public 来存储图片
- reactjs - 管理多个状态数组搜索并保留原始状态数组?