【发布时间】:2016-03-01 13:44:50
【问题描述】:
我遇到了以下问题,希望有人可以帮助我。我想使用一个无法访问源代码的库。 (仅 *.h)在此库中的某个函数中读取一个 ASCII 文件。
- 如果我在一个普通的 main.cpp 中使用这个函数,一切正常。
Output: Test [-0.06 0.08 -0.02]*
- 如果我在我的大项目(许多外部库)中链接库并调用函数
Output: Test [-0 0 -0]
我认为在我的大项目中更改了小数分隔符。
如果我无法访问库的源代码,有什么办法解决这个问题吗?
我在 Linux Ubuntu 机器上使用 g++4.8.1 使用 C++ 编程。是一个老同事的库(已经联系过他的源码但不知道他是否还有src),我只有静态库文件*.a和*h文件。
示例代码:
Mesh* vMesh = MeshLoader::load(file);
Vec3* toPrint = vMesh->getVertex(4);
std::cout<<"Output: Test:"<<std::endl;
toPrint->print();
但这段代码实际上什么也没说,因为我无法访问函数 *.cpp 代码
【问题讨论】:
-
我们需要比这更多的细节。什么是图书馆?完全隐藏/专有?你的调用代码呢,看起来怎么样?你知道这个库是用什么语言编写的吗?它是如何打印的?我现在能做的最好的就是把你指向
numpunct。 -
什么操作系统?如果库使用 Windows API 及其转换函数,则用户的区域设置指定小数分隔符。在解析用户输入时,这是一件好事。解析文本数据时,不是那么多。图书馆很可能有一种指定语言环境的方法。否则,您将不得不更改进程的语言环境。这同样适用于其他操作系统
标签: c++ decimalformat decimal-point