0

每个人。

我是 c++ 的新手,我对 c# 有一些经验。我想创建一个纯 c++ 开发环境,并使用标准 c++ 库。我的操作系统是Windows。

我选择code::block+MinGW在Windows上搭建一个纯开发环境。我直接选择集成MinGW的Code::Block安装包。然后我开始开发我的第一个学习项目。在这个项目中,我使用函数“stat”从标准库中获取文件信息。我通过了编译。但是在运行这个程序的过程中,我检查了“调用堆栈”。并找到从文件“C:\WINDOWS\system32\msvcrt.dll”中调用的函数“stat”。我从互联网上检查了这个 dll,发现这个文件是一个 microsoft windows 库文件。所以很明显,这个dll文件没有函数“stat”,但有函数“_stat”。

那么我该如何解决这个问题呢?我想使用标准 c++ 库,而不是 microsoft windows 库。因为后来,我想把这个项目搬到linux环境下。所以总的来说,我如何构建开发环境来满足我的需求。

4

1 回答 1

0

如果要为 Windows 构建,则必须使用 Windows 系统库。您只需根据目标系统链接一个或另一个。这些库仅提供底层实现,这与一个操作系统不同。

在您的具体示例中, stat 是由标准系统标头定义的函数,但其​​底层实现因系统而异。整个函数可能是从 msvcrt 中提取的,但我的猜测是 msvcrt 恰好实现了一个伴随函数,该函数处理所有特定于系统的东西。

于 2012-12-28T06:06:38.227 回答