【问题标题】:Using \MDd and \MTd in the same visual studio solution?在同一个 Visual Studio 解决方案中使用 \MDd 和 \MTd?
【发布时间】:2015-05-02 02:51:06
【问题描述】:

我有一个庞大的预先存在的代码库,这取决于许多都使用 \MTd 作为运行时设置的外部库。此代码库在此配置中稳定且经过良好测试。我希望保持原样。

我正在尝试将一个新的外部库集成到代码库中(如果重要的是 Casablanca REST SDK),但我刚刚发现它似乎需要与 \MDd 设置一起使用。当我发现这个问题时,我在 std:shared_ptr 深处遇到了一些奇怪的无法追踪的错误。当我将我的孤立项目更改为使用 \MDd casablanca 时效果更好。

Visual Studio 似乎不允许我有不同的设置,它似乎是一个解决方案中的全部或全部?

有没有人知道解决这种情况的好方法?有什么建议么?我什至不知道该把注意力集中在哪里? 1) 我可以伪造 Visual Studio 并同时使用吗?如果是这样,我真的应该这样做吗? 2)或者我应该尝试获得一个工作的卡萨布兰卡静态库?在讨论论坛上似乎不可能? 3) 还是我应该硬着头皮把整个解决方案移到 \MDd? 4)最后,我应该减少损失并尝试不同的客户端服务器框架吗?快速搜索显示我可以使用 Boost Asio、Google Client API、WinSock 的 windows c++ 客户端服务器解决方案?

这是我的第一个客户端服务器实现,非常欢迎提出意见。

【问题讨论】:

  • 你见过this discussion吗?那里有详细的说明如何使用静态运行时构建它。至于您的问题:您可以在项目选项窗口中指定每个项目的运行时。但是,如果您需要超越普通 C ABI 的集成,则不能混合模块运行时。您提到的库具有完全不同的级别 - 这个库通过 HTTP 提供 REST 功能。使用 boost asio,您将只有开箱即用的 TCP 套接字 - 如果您需要 HTTP,您需要自己做。 WinSock - 是普通的 C Windows API。

标签: c++ visual-studio casablanca


【解决方案1】:

我们实际上将整个代码库移动到动态链接。还有其他一些库引起了一些担忧,这似乎是迁移代码库的好时机。问题解决了,至少现在是这样。感谢您的反馈。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多