【发布时间】:2012-01-30 11:38:26
【问题描述】:
我最近没有在 MSVC 中编码。我被分配了一个有很多错误的旧代码,但大多数缺少的定义都是 Windows API。
例如,LPHANDLER_FUNCTION_EX 未定义并导致 C2061 编译错误。但我已经包含了Winsvc.h 或Windows.h。我知道这只是一个定义,我检查了我的 C:\Program Files\Microsoft SDK\ 的定义可以在 Winsvc.h 上找到。所以我在目录列表中添加了 SDK(工具 > 选项 > 目录选项卡)。
我还下载了 Windows SDK 2003 年 2 月更新,它是最后一个支持 msvc6 的版本。 (ref)
为了完整起见,我的电脑是 Windows XP SP3。安装了 SP6 的 Microsoft Visual C++ 企业版。我还安装了 Windows SDK 2003 年 2 月更新。
有什么想法吗?
【问题讨论】:
-
您确定在使用
LPHANDLER_FUNCTION_EX之前包含WinSvc.h吗?我建议检查预处理器的输出 (cl.exe /E file.c > output)。 -
@jamesdlin。在使用 LPHANDLER_FUNCTION_EX 定义之前,WinSvc.h 包含在头文件的顶部。
-
几乎不可能回答。这个对我有用。
WINVER的定义是什么? -
您是否使用了预编译头文件?同样,查看预处理的输出并验证
LPHANDLER_FUNCTION_EX在使用之前已声明。
标签: winapi visual-c++ windows-services undefined