我的问题是如何在内核空间中使用内在函数(在 Windows 上),当头文件包含在 SDK 中(从 VC 10 安装)并且我用来编译驱动程序的 WDK 不知道这个文件时。当我#include <intrin.h>
一切正常但当我开始编译时我得到
错误 C1083:无法打开包含文件:'intrin.h':没有这样的文件或目录
我尝试将适当的文件复制到 WDK 目录,但没有成功。我知道我可以开始编写内联汇编,但老实说,我想避免这样做,因为有内在的支持,我只是不知道如何访问它。
我的问题是如何在内核空间中使用内在函数(在 Windows 上),当头文件包含在 SDK 中(从 VC 10 安装)并且我用来编译驱动程序的 WDK 不知道这个文件时。当我#include <intrin.h>
一切正常但当我开始编译时我得到
错误 C1083:无法打开包含文件:'intrin.h':没有这样的文件或目录
我尝试将适当的文件复制到 WDK 目录,但没有成功。我知道我可以开始编写内联汇编,但老实说,我想避免这样做,因为有内在的支持,我只是不知道如何访问它。
WDK 目录中缺少一些较新的标头。只需复制声明即可。
例如(因为 WDK 中缺少):
#include <emmintrin.h>
extern "C" {
extern __m128i _mm_abs_epi16 (__m128i a);
extern __m128i _mm_shuffle_epi8 (__m128i a, __m128i b);
extern __m128i _mm_blendv_epi8 (__m128i v1, __m128i v2, __m128i mask);
extern __m128i _mm_alignr_epi8 (__m128i a, __m128i b, int n);
};