2010-08-16 56 views
0

同時做一些靜態代碼分析我發現了一個奇怪的。在類似這樣的電話:爲什麼在這個調用AfxWinInit我得到一個警告C6309?

if(!AfxWinInit(moduleHandle,NULL,::GetCommandLine(),0) 

我得到的第二個參數的警告C6309(C6309:參數2爲空:它不堅持功能AfxWinInit的規格)

文件說,爲Win32應用程序的第二個參數必須爲NULL,所以問題是:

a)有什麼問題,我的代碼,AfxWinInit聲明或靜態代碼分析?

在此先感謝!

回答

3
friend BOOL AFXAPI AfxWinInit(_In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, 
      _In_z_ LPTSTR lpCmdLine, _In_ int nCmdShow); 

這看起來不對我,第二個參數應該註釋爲_In_opt_。從SAL Annotations文檔:

可選選項
描述如果緩衝區本身是可選的。這些註釋可以應用於參數圖層,返回值圖層或前/後圖層中的值。

  • (無) 指向緩衝區的指針不能爲NULL。
  • opt_ 指向緩衝區的指針可能爲NULL。在被解除引用之前它會被檢查。
相關問題