在开发 EasyCVR 的部分功能过程中,需要编写 C++ 代码,生成动态库。上一篇我们讲了编写当中遇到的错误(0xC0000005:读取位置0x000001C79E2DE000时发生访问冲突错误解决步骤)。问题解决后,我们就尝试了用 Go 语言调用。
调用过程中,出现了以下错误:
1>…face_auth.cpp(83): fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include “stdafx.h””?
原因分析
stdafx.h 文件为编译器在编译软件代码的时候提前预编译加载的文件。
在 Visual Studio 中采用此功能用于加快编译速度,因此默认会要求在代码中添加“#include “stdafx.h””。
解决方案
方案一
如果觉得编译速度尚可,可以直接不使用预编译头。在解决方案右击工程,点击属性。在配置属性-C/C+±预编译头中选择不使用预编译头。
该方法的缺点:降低编译速度。
方案二
在响应的 .cpp 文件中添加 #include “stdafx.h”,但是添加完毕后,就破坏了代码的标准性。
对比了两种方案后,我们采用了方案一解决此问题。
EasyCVR安防视频云服务是一套支持多协议、多平台接入的安防互联网无插件直播融合平台,包括标准协议RTMP、RTSP、GB/T28181国标协议支持,海康SDK、Ehome平台接入等,适合设备类型多样、设备协议不统一的业务场景,通过以上协议将网络摄像头、设备、平台接入到EasyCVR中,进行统一的分发,支持国标级联、支持二次开发。