在使用vs编译程序的时候碰到如标题所示的错误提示,网上找的方法都不好使,后来发现就是简单的函数返回值不匹配问题。
举例如下:
HANDLE PsGetProcessId(
_In_ PEPROCESS Process
);
PsGetProcessId返回值应该为HANDLE,若是在调用的时候将其赋值给其他类型的变量,如int,将导致该类错误。
int pid = PsGetProcessId(Process)
正确写法应该为:
HANDLE pid = PsGetProcessId(Process)
当然,以上问题也可以另一种方法解决:项目->属性->配置属性->C/C++->常规->将警告视为错误,将其值改为“否”,但是这将忽略所有的警告,在实际开发中强烈建议不要这么干。