this質問jalfについての回答の1つでは、望ましくない最小/最大マクロの定義を防ぐことができるNOMINMAX
を定義します。 windows.h
(または他のWindowsヘッダー、たとえばMicrosoft CランタイムヘッダーまたはSTLの実装)の動作を制御するのに役立つ有用な定義はありますか?Windowsヘッダー(有用な定義)を守る方法は?
答えて
最も一般的に使用されるのはおそらくWIN32_LEAN_AND_MEAN
です。これは、ほとんど使用されないAPIの部分を無効にします。 MSDNのUsing the Windows Headersで詳細を見つけることができます。
私はので、ここでWINDOWS.Hからのリストだ、MSDNには、それらの定義をリストについて間違って覚えて:WIN32_LEAN_AND_MEAN
は既にMFCで定義されているので
/* If defined, the following flags inhibit definition
* of the indicated items.
*
* NOGDICAPMASKS - CC_*, LC_*, PC_*, CP_*, TC_*, RC_
* NOVIRTUALKEYCODES - VK_*
* NOWINMESSAGES - WM_*, EM_*, LB_*, CB_*
* NOWINSTYLES - WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_*
* NOSYSMETRICS - SM_*
* NOMENUS - MF_*
* NOICONS - IDI_*
* NOKEYSTATES - MK_*
* NOSYSCOMMANDS - SC_*
* NORASTEROPS - Binary and Tertiary raster ops
* NOSHOWWINDOW - SW_*
* OEMRESOURCE - OEM Resource values
* NOATOM - Atom Manager routines
* NOCLIPBOARD - Clipboard routines
* NOCOLOR - Screen colors
* NOCTLMGR - Control and Dialog routines
* NODRAWTEXT - DrawText() and DT_*
* NOGDI - All GDI defines and routines
* NOKERNEL - All KERNEL defines and routines
* NOUSER - All USER defines and routines
* NONLS - All NLS defines and routines
* NOMB - MB_* and MessageBox()
* NOMEMMGR - GMEM_*, LMEM_*, GHND, LHND, associated routines
* NOMETAFILE - typedef METAFILEPICT
* NOMINMAX - Macros min(a,b) and max(a,b)
* NOMSG - typedef MSG and associated routines
* NOOPENFILE - OpenFile(), OemToAnsi, AnsiToOem, and OF_*
* NOSCROLL - SB_* and scrolling routines
* NOSERVICE - All Service Controller routines, SERVICE_ equates, etc.
* NOSOUND - Sound driver routines
* NOTEXTMETRIC - typedef TEXTMETRIC and associated routines
* NOWH - SetWindowsHook and WH_*
* NOWINOFFSETS - GWL_*, GCL_*, associated routines
* NOCOMM - COMM driver routines
* NOKANJI - Kanji support stuff.
* NOHELP - Help engine interface.
* NOPROFILER - Profiler interface.
* NODEFERWINDOWPOS - DeferWindowPos routines
* NOMCX - Modem Configuration Extensions
*/
リンクは、WIN32_LEAN_AND_MEANのみの記事につながります。間違ったリンク? –
うーん、私はそれがNOxxxを定義していますが定義します。私はそのリストを含めるために私の答えを編集します。 –
この記事では、windows.hでより多くのマクロを検索する方法についても説明しています。 ( "サポートNOapiシンボルの一覧については、Windows.hを参照してください。) 完全なリファレンスドキュメントはありません。 – jalf
MFCプロジェクトはVC_EXTRALEAN
を使用することができます。私もenabling STRICTをお勧めします。
- 1. JasperReports:Excelでヘッダーを定義する方法
- 2. Tomcatでアプリケーション固有のクラスパスを定義する方法は?
- 3. のcppファイルで定義された方法ではなく、ヘッダー内の
- 4. 詐欺から守る方法は?
- 5. 共有ホスティングでWindows認証を使用する方法は?
- 6. TFSビルド定義からWindowsサービスプロジェクトを出力する方法
- 7. 私のバックボーンルーターを守る方法DRY
- 8. XMLスキーマでユーザー定義データ型を定義する方法は?
- 9. 巡回型定義を定義する方法は?
- 10. Windowsディレクトリ定義
- 11. ヘッダーをQListViewに設定する方法
- 12. 共有メッセージに挿入される内容を定義する方法は?
- 13. FAKE:MSBuildプロパティを定義する方法は?
- 14. グローバルカスタムRoutedCommandを定義する方法は?
- 15. DRUPAL_WEIGHT_SELECT_MAXを定義する方法は?
- 16. Railsヘッダー:フォームの設定方法は?
- 17. 環境固有のマングースミドルウェアを定義する方法はありますか?
- 18. jpegイメージ用のデフォルトの応答ヘッダーを設定する方法
- 19. `Backbone.View.events`定義を使用してカスタムサブビューイベントをリスンする方法は?
- 20. noConflict()を使用してjQueryオブジェクトを定義する方法は?
- 21. フォーム提出に必要なヘッダーを決定する方法
- 22. node.jsに汎用メソッドを定義する方法は?
- 23. MySQLデータベースに追加専用テーブルを定義する方法は?
- 24. Ant + JUnit:Junit用にVMを定義する方法は?
- 25. .NETでSQLユーザー定義関数を使用する方法は?
- 26. Django:リクエスト用のグローバルプロパティを定義する方法は?
- 27. 未定義方法
- 28. の定義方法
- 29. 基本的なカスタム構成セクションを定義する方法は?
- 30. 静的なconstメンバーを定義する方法は?
私はwin32プラットフォーム上でこのminとmaxのナンセンスで30分を無駄にしました。 – Tim