我试图构建一个尽可能小的应用程序,因此我尝试使用 Win API 调用而不是使用标准 C/C++ 调用来避免使用 CRT。很不幸,我仍然收到了一个链接器错误:
Error 2 error LNK2001: unresolved external symbol _memcpy
我在我的代码中没有调用memcpy,因此我认为其中一个Windows函数正在调用它。打开内置函数会出现未解决的符号_memset,但我也没有使用它。据我理解,启用内置函数应该包括memcpy和memset。
由于我的代码太长无法发布,以下是我的程序中的Win API调用:
- lstrcpy - wsprintf - CopyMemory - 如果我将其注释掉,则错误会切换到_memset - OpenFileMapping - MapViewOfFile - CreateFileMapping
我的问题:
- 如果我声明了/Oi,为什么内置函数没有被包含? - 我需要自己声明memset和memcpy吗?
- 如果是这样,如何在不引起Visual Studio重新定义内置函数的情况下进行声明?