因公司项目需要,接触并学习WinPcap开发,经网上推荐按照
WinPcap教程:循序渐进教你使用WinPcap
学习,但是在第一章节的时候就遇到了
error C1083: 无法打开包括文件: “sys/time.h”: No such file or directory
这个错误,点击报错提示进入了pcap.h的头文件中,并将错误指向如下的代码:
#if defined(WIN32)
#include <pcap-stdinc.h>
#elif defined(MSDOS)
#include <sys/types.h>
#include <sys/socket.h> /* u_int, u_char etc. */
#else /* UN*X */
#include <sys/types.h>
#include <sys/time.h>
#endif /* WIN32/MSDOS/UN*X */
通过阅读代码,
不难发现sys/time.h是uinx系统下的库文件,而我现在使用的平台是在windows,显然是未指明程序运行的系统。
找到所在,只要指定系统就可以了,我的解决方法如下:
#define WIN32
#include "pcap.h"
即在include的前面加上#define WIN32这个代码即可,指定运行环境。再次编译,未报错。
sys
/
time
.h是Linux系统的日期时间头
文件
,
sys
/
time
.h通常会包含include
time
.h。
编写的代码如果是平台无关的,则需要在代码里include
time
.h,但这样的话,使用
time
_t等数据结构的话可能需要手动:
#define __need_
time
_t
#define __need_
time
spec
通常如果代码可以是平台相关的,则只需要incl
•添加OpenCV的lib目录,例如C:\opencv\build\x64\vc14\lib或C:\opencv\build\lib。当你在使用C++编译包含OpenCV库的代码时遇到fatal
error
C1083
:
无法
打开
包括
文件
: “opencv2/opencv.hpp”的错误,这通常意味着你的项目没有正确配置OpenCV库的路径。opencv.hpp是一个头
文件
,它包含了OpenCV所有模块的声明,因此是使用OpenCV库的关键。确保你安装的OpenCV版本与你的项目和编译器兼容。
网上大多winpcap配置是关于vc6的,今天花了大半天用来配置在VS2008下的winpcap配置,我用的winpcap是4.0.2:配置过程如下:1.安装WinPcap_4_0_2.exe,即可以抓包的驱动程序2。下载winpcap开发包WpdPack_4_0_2.zip,里面有关开发相关的函数库以及例子3.
打开
.net平台,设置环境目录;在菜单:工具->选项;弹出的选项窗体左边点击:项目和
(3)使用.def
文件
,不用在.h和.c
文件
的函数前增加__declspec(dllexport)如果是将已有的c
文件
编译成dll,推荐使用(3),减少对原始c
文件
的干预。仅在.h函数添加__declspec(dllexport)如果要生成纯粹c dll,使用控制台程序,dll,空项目。VS2017编译c dll 有三种方法。(1).h和.c
文件
函数增加。
通常在跨平台编程的时候会遇到这个
问题
。
sys
/
time
.h是linux目录下的
文件
,里面有get
time
ofday这种函数。这个
问题
,可以转化为,如果要在windows下实现任务计时间的功能,该如何做?根据精度要求可选择以下两种方式。
精度要求不高(毫秒级)
头
文件
:windows.h
函数声明:DWORD WINAPI GetTickCount(void)
其中DWORD的类型为无符号长整型,声明如下:
typedef unsigned long DWORD;
功能:返回自设备启动后的毫秒数
用法演示:
time
.h 是 ISO C99 标准日期时间头
文件
。
sys
/
time
.h 是 Linux系统 的日期时间头
文件
。
sys
/
time
.h 通常会包含 #include &amp;lt;
time
.h&amp;gt; 。
编写的代码如果与平台无关的,则需要在代码里 #include &amp;lt;
time
.h&amp;gt;,但这样使用
time
_t 等数据结构的话需要手动
#define __...