真正的问题是 WinAPI 的函数定义位于 C 预处理器级别,因此您必须编写一些丑陋的代码来尝试与它们共存。
如果可能的话,您应该重命名代码库的函数,以免与 WinAPI 发生冲突。
否则,您可以#undef SendMessage在定义自己的函数之前编写类似取消 WinAPI 对此函数的定义的代码。
如果您需要在定义自己的函数和使用 WinAPI 的函数宏之间切换,您还可以使用#pragma push_macro和#pragma pop_macro功能来保留之前的宏undef并在之后恢复它。