我有一个 DLL 和 3 个使用这个 DLL 的应用程序。(这些应用程序不会同时运行)
在 3 个应用程序中,2 个运行良好,但 1 个应用程序在一段时间后没有从一个 DLL 函数获得响应(具体而言,在第 7 个函数调用时)。此外,如果我使用调试版本的应用程序或我的 DLL,则代码可以正常工作。它仅在发布版本中停止。
在度过了 2 个不眠之夜之后,我发现如果我将 DLL 的项目属性从/MD
to 更改为 to /MT
,这个应用程序可以正常工作。
我不知道为什么会发生这种情况。为了睡眠不足的程序员,谁能解释一下!
更新:
我将在市场上发布这个 DLL,我不能说是否会构建用户应用程序/MT
或/MTD
其他什么......有什么方法可以确保它可以与任何应用程序一起使用。