加了extern C 以后报error LNK2019: 无法解析的外部符号 __imp_AlphaBlend,函数 drawCursorOnFrameBuffer 中引用了该符号
时间: 2023-10-09 15:16:34 浏览: 248
如何解决 error LNK2019 无法解析的外部符号,该符号在函数 中被引用
5星 · 资源好评率100%
在使用 extern "C" 后仍然出现 LNK2019 链接错误,可能是因为 extern "C" 并没有解决链接问题。这种情况下,您需要检查以下几点:
1. 您是否包含了正确的头文件。AlphaBlend 函数定义在 Windows.h 头文件中,如果没有包含该头文件,则编译器无法识别 AlphaBlend 函数。
2. 您是否使用了正确的库文件。AlphaBlend 函数定义在 gdi32.lib 库文件中,如果您没有链接该库文件,则链接器无法解析 AlphaBlend 函数。
3. 如果您的项目中同时包含 C++ 代码和 C 代码,那么您可能需要使用 extern "C" 包裹 C++ 代码中的函数声明,以确保 C++ 代码中的函数能够按照 C 语言的方式进行链接。
如果您已经检查了上述问题,并且仍然无法解决链接错误,可以尝试以下方法:
1. 确保您在项目属性中包含了 Windows.h 头文件和 gdi32.lib 库文件。
2. 如果您使用的是 Visual Studio,可以尝试在项目属性->链接器->输入->附加依赖项中手动添加 gdi32.lib 库文件。
3. 如果您使用的是命令行编译,可以在编译命令中加入 /DEFAULTLIB:gdi32.lib 参数,以链接 gdi32.lib 库文件。
4. 最后,如果您的代码中使用了一些 Windows 特定的数据类型或函数,可以尝试在代码中包含 Windows.h 头文件,并将代码编译为 Windows 应用程序。
阅读全文