分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

如果你确认不缺少“;”,那么就是你忘了包含头文件或头文件包含的顺序不对。

最近用VC7做一个小软件,主要的功能是定时扫描GPRS接收过来的数据,并存放在数据库里。要求把软件注册成为windows服务。在所有的工作做完以后,我着手实现这部分功能。其实完全不用在程序中写入任何代码,只需要执行一个批处理文件,便可完美地打成服务了。但我还是想试一下用程序怎么实现这个功能。
在VC知识库里,找到一篇文章,其实原理并不难,无非是把程序的切入口,由main函数转换到服务控制台上去。文章的名字叫《用 C 语言编写 Windows 服务程序的五个步骤》,有兴趣的朋友可以参考一下。在这里要说的是,我用的VS2003做为开发工具,与VC6有一定差别,比如main和_tmain,在引用的头文件里,也有些许不同。当我把程序封装成服务的形式,发现出了一堆错误,搞了一天,也不知道是哪里的问题。最后,左思右想,百度谷歌,终于找到了问题的本质。归为一句话就是要“注意引用头文件的先后顺序”!这个问题说大不大,说小不小,错误难找,很让人头疼。写下此文,告之遇到类似问题的朋友们,你们的程序没有错误,但请改变一下引用的H文件的顺序!像我这个例子来说,顺序如下:
#include "stdafx.h"
#include <winsvc.h>
如果颠倒了,就会出现下面一堆令人头疼的错误:

正在编译...
ServerTest.cpp
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(58) : error C2146: 语法错误 : 缺少“;”(在标识符“hServStatus”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(58) : error C2501: “hServStatus” : 缺少存储类或类型说明符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(59) : error C2146: 语法错误 : 缺少“;”(在标识符“hSStat”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(59) : error C2501: “hSStat” : 缺少存储类或类型说明符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(75) : error C2065: “SERVICE_TABLE_ENTRY” : 未声明的标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(75) : error C2146: 语法错误 : 缺少“;”(在标识符“DispatchTable”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(75) : error C2065: “DispatchTable” : 未声明的标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(75) : error C2059: 语法错误 : “]”
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(75) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(76) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(76) : warning C4550: 表达式计算为缺少参数列表的函数
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(76) : error C2143: 语法错误 : 缺少“;”(在“,”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(77) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(77) : error C2143: 语法错误 : 缺少“;”(在“}”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(80) : error C3861: “StartServiceCtrlDispatcher”: 即使使用参数相关的查找,也未找到标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(80) : error C3861: “DispatchTable”: 即使使用参数相关的查找,也未找到标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(87) : error C2065: “SC_HANDLE” : 未声明的标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(87) : error C2146: 语法错误 : 缺少“;”(在标识符“schSCManager”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(87) : error C2065: “schSCManager” : 未声明的标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(88) : error C2146: 语法错误 : 缺少“;”(在标识符“schService”的前面)
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(88) : error C3861: “SC_HANDLE”: 即使使用参数相关的查找,也未找到标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(88) : error C2065: “schService” : 未声明的标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(99) : error C2065: “SC_MANAGER_ALL_ACCESS” : 未声明的标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(99) : error C3861: “schSCManager”: 即使使用参数相关的查找,也未找到标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(99) : error C3861: “OpenSCManager”: 即使使用参数相关的查找,也未找到标识符
e:\Project C++\ServerTest\ServerTest\ServerTest\ServerTest.cpp(101) : error C3861: “schSCManager”: 即使使用参数相关的查找,也未找到标识符
......
如果引用顺序正确了,你的程序就会像越狱第三季中的那个监狱老大说的一样:如蓝天般明朗。

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

一针见血 error C2146 语法错误 缺少相关推荐

  1. error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)[转]

    error C2146: 语法错误 : 缺少";"(在标识符"PVOID64"的前面) 来源:http://houjixin.blog.163.com/blog ...

  2. error C2146: 语法错误: 缺少“;”(在标识符“******”的前面)

    c++新手总结问题,从头看问题并没有缺少":",就结合网上和提示错误进行解决 问题: 可能原因: 1.如果存在两个类的头文件,其中一个类包含了另一个类的头文件且这两个类中的某一个类 ...

  3. error C2143: 语法错误 : 缺少“;”(在“using”的前面)

    1.>d:\daily\cpp\friendly2\friendly2\complex.cpp(5): error C2143: 语法错误 : 缺少";"(在"us ...

  4. vs2017编译错误:C2001 常量中有换行符 C2146 语法错误: 缺少“)”

    vs2017编译报错 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2001 常量中有换行符 d:.cpp 592 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C2146 语法 ...

  5. G:\Windows Kits\10\include\10.0.18362.0\ucrt\inttypes.h(96): error C2143: 语法错误: 缺少“{”(在“__cdecl”的前面)

    (1)本机上安装了Microsoft Visual Studio2017 Community版 A.将D:\Program Files (x86)\Microsoft Visual Studio\20 ...

  6. 程序编译出错,缺少类型说明符;语法错误 : 缺少“;”(在标识符“PVOID64”的前面)

    1>正在编译...  1>stdafx.cpp  1>E:/VS2005/VC/PlatformSDK/include/winnt.h(222) : error C2146: 语法错 ...

  7. c++ 语法错误 : 缺少“;”(在“*”的前面)

    语法错误 : 缺少";"(在""的前面) 出现这个错误,我们当然不会考虑简单的原因(就是缺少;在的前面),那么来分析一下可能的不好发现的原因: error C4 ...

  8. 语法错误 : 缺少“;”(在“类型”的前面)的解决方案 转载

    今天测试了一个以.c结尾的C语言程序.原始代码如下: [cpp] view plaincopy #include <stdio.h> #include <stdlib.h> i ...

  9. 语法错误 : 缺少“;”(在“类型”的前面)的解决方案

    今天测试了一个以.c结尾的C语言程序.原始代码如下: #include <stdio.h> #include <stdlib.h>int main(int argc, char ...

最新文章

  1. android预置第三方apk,android 内置APK成系统应用
  2. grafana美人鱼_编码美人鱼–我如何从海洋生物学家转到前端开发人员
  3. 事件监听器 java_Java实现一个简单的事件监听器
  4. innodb和myisam
  5. PHP接口与抽象类区别:接口用来扩展应用 抽象用来总结归纳
  6. ASP.NET Core微服务(二)——【ASP.NET Core Swagger配置】
  7. excel转成csv格式的默认分隔符
  8. golang 包含文本_Golang教程之Web篇(七)
  9. ASP.NET 2.0个性化配置(profile)
  10. Confluence 6 附件存储文件系统的分级
  11. oracle中如何分页,Oracle中操作分页
  12. P1133 教主的花园 (动态规划)
  13. matlaba绘制gps星空图_网络图横道图绘制软件 5.0免锁版告别纯手工绘制,修改工作量大!...
  14. PHP在Linux上上传文件的注意事项
  15. 区分微信小程序是否支持canvas 2d
  16. CCNet: Criss-Cross Attention for Semantic Segmentation
  17. 天线基础知识(三)天线增益
  18. 如何用Java打开PDF文件
  19. win10 hao123劫持html文件,Win10 edge浏览器主页被hao123劫持怎么解决?
  20. 浅析虚拟语气 (Subjunctive mood)

热门文章

  1. 计算机作业我家乡的变化英语作文,家乡的变化英语作文(通用7篇)
  2. pdf文件怎么去除水印,pdf去除水印方法介绍
  3. return EXIT_SUCCESS
  4. 对于‘’此转储文件的格式无效‘’的一种猜测
  5. 《认同感 用故事包装事实的艺术》
  6. 送走2012迎来2013
  7. 移除Selenium的浏览器window.navigator.webdriver等20多个指纹特征
  8. TypeError:__init__() missing 1 required positional argument :‘problem‘
  9. linux下flash大小如何查看器,Flash 型号和block大小查看
  10. C++STL(标准模板库)学习