CWinFormsControl と CWinFormsView を使用して MFC ビューに .NET コントロールを作成する C++/CLI プロジェクトがあります。これを行うには、「afxwinforms.h」を #include する必要があります。
プロジェクトでコード分析を実行すると、含めた MFC クラスの一部について常に警告が表示されます。例:
3>Running Code Analysis...
3>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwinforms.h(87) : warning: CA1704 : Microsoft.Naming : In method 'CWin32Window::CWin32Window(HWND__*)', correct the spelling of 'Wnd' in parameter name 'hWnd' or remove it entirely if it represents any sort of Hungarian notation.
3>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwinforms.h(87) : warning: CA1704 : Microsoft.Naming : In method 'CWin32Window::CWin32Window(HWND__*)', correct the spelling of 'h' in parameter name 'hWnd' or remove it entirely if it represents any sort of Hungarian notation.
3>warning: CA1051 : Microsoft.Design : Because field 'CWinFormsEventsHelper::m_pControl' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it.
3>warning: CA1051 : Microsoft.Design : Because field 'CWinFormsEventsHelper::m_pSink' is visible outside of its declaring type, change its accessibility to private and add a property, with the same accessibility as the field has currently, to provide access to it.
3>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwinforms.inl(60) : warning: CA1704 : Microsoft.Naming : In method 'CWinFormsEventsHelper::OnHandleCreated(Object^, EventArgs^)', consider providing a more meaningful name than parameter name 'o'.
3>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwinforms.inl(60) : warning: CA2109 : Microsoft.Security : Consider making 'CWinFormsEventsHelper::OnHandleCreated(Object^, EventArgs^)' not externally visible.
3>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwinforms.inl(67) : warning: CA1704 : Microsoft.Naming : In method 'CWinFormsEventsHelper::OnHandleDestroyed(Object^, EventArgs^)', consider providing a more meaningful name than parameter name 'o'.
3>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwinforms.inl(67) : warning: CA2109 : Microsoft.Security : Consider making 'CWinFormsEventsHelper::OnHandleDestroyed(Object^, EventArgs^)' not externally visible.
3>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwinforms.inl(54) : warning: CA1704 : Microsoft.Naming : Correct the spelling of 'Unadvise' in member name 'CWinFormsEventsHelper::Unadvise(IHandleEvents*)' or remove it entirely if it represents any sort of Hungarian notation.
3>warning: CA1823 : Microsoft.Performance : It appears that field 'context_node_base::_Needs_Context' is never used or is only ever assigned to. Use this field or remove it.
3>warning: CA1812 : Microsoft.Performance : 'context_node<char const *,System::String ^>' is an internal class that is apparently never instantiated. If so, remove the code from the assembly. If this class is intended to contain only static methods, consider adding a private constructor to prevent the compiler from generating a default constructor.
3>c:\program files\microsoft visual studio 9.0\vc\include\msclr\marshal.h(366) : warning: CA2201 : Microsoft.Usage : 'context_node<char const *,System::String ^>::context_node<char const *,System::String ^>(const char*&, String^)' creates an exception of type 'OutOfMemoryException', an exception type that is reserved by the runtime and should never be raised by managed code. If this exception instance might be thrown, use a different exception type.
明らかに、これらの MFC 警告を抑制して、自分の警告をより明確に確認できるようにしたいと考えています。しかし、どのように?この問題を回避するためだけに、自分のコードからの警告を無効にしたくありません。