【问题标题】:C++ utility::conversions is not working in Static Linked LibraryC++ 实用程序::conversions 在静态链接库中不起作用
【发布时间】:2020-06-16 11:22:23
【问题描述】:

我有一个 c++ MFC 应用程序。 一切都对我有用,直到我排除了一些我使用的头文件并将它们设置在一个单独的静态链接库项目中。 现在,一切都编译得很好,但是在运行时,当我尝试使用 cpprest sdk 的实用程序::conversions 库时,我得到一个错误“UTF-8 字符串字符永远不能以 10xxxxxx 开头”,对于这个库中的每个函数,我得到一个不同的错误,一切都变成“无法读取内存”。 但是当我使用 std::to_string() 它工作得很好(位于不同的库中 - 不是 cpprest)。 我做错了什么?

pch.h 文件位于库中,而 MFC 应用程序将其包含在 pch.cpp 中,并将预编译的标头配置为“创建”。

// Method in the static library triggered by the MFC app
std::string TradeRecord::toJson(std::string channel)
{
    string_t _channel= utility::conversions::to_string_t(channel);
    return "";
}

【问题讨论】:

  • 不,我没有静态变量。
  • 这可能与配置有关,但我不知道具体是什么。
  • “静态链接库”究竟是什么意思?这是在编译时使用导入库还是静态库链接的 DLL?
  • 静态链接库是一个“C++ 静态库”项目,它通过链接器使用(包括附加依赖项:.lib 文件)链接到 MFC 项目

标签: c++ dll mfc static-libraries lib


【解决方案1】:

问题在于使用链接到我的项目的 cpprest 库的发布 dll 版本,一旦我链接了调试 dll 版本,一切正常。 所以库版本可能有问题。

【讨论】:

    猜你喜欢
    • 2021-07-11
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多