我在Visual Studio项目中使用了外部库(Qpid Proton C ++)。 该API包括以下方法:
container::connect(const std::string &url) {...}
我在代码中这样称呼它:
container.connect("127.0.0.1");
但是在调试时,进入库的功能时,会以错误的方式解释字符串,该字符串的大小为数百万个字符,并且内容难以理解。
这可能是什么原因?
答案 0 :(得分:1)
您需要将断点放置在函数内部,而不是在变量声明存在但尚未初始化的函数声明级别。
答案 1 :(得分:0)
以防万一有人遇到类似的问题,就像Alan Birtles在他的评论中提到的那样,一个可能的原因是库和您的代码使用了不同的C ++运行时,而事实就是这种情况。
通常,如this page from Visual C++ documentation中所述,
如果您使用的是CRT(C运行时)或STL(标准模板库)类型,请不要在使用不同版本的编译器编译的二进制文件(包括DLL)之间传递它们。
这正是正在发生的事情。