在使用vs編譯程序的時候碰到如標題所示的錯誤提示,網上找的方法都不好使,後來發現就是簡單的函數返回值不匹配問題。
舉例如下:
HANDLE PsGetProcessId(
_In_ PEPROCESS Process
);
PsGetProcessId返回值應該爲HANDLE,若是在調用的時候將其賦值給其他類型的變量,如int,將導致該類錯誤。
int pid = PsGetProcessId(Process)
正確寫法應該爲:
HANDLE pid = PsGetProcessId(Process)
當然,以上問題也可以另一種方法解決:項目->屬性->配置屬性->C/C++->常規->將警告視爲錯誤,將其值改爲“否”,但是這將忽略所有的警告,在實際開發中強烈建議不要這麼幹。