2009-10-17 1 views
0

Когда я использую #include <d3d9.h> в своих программах, мне больше не нужно включать windows.h, чтобы использовать функции Windows, такие как WinMain и CreateWindow.Включает ли d3d9.h windows.h? (C++)

Это потому, что d3d9.h & c. включают windows.h? В основном, мне интересно, можно ли заменить windows.h на d3d9.h и т. Д. И по-прежнему иметь возможность выполнять любые функции, которые я мог бы использовать с windows.h.

ответ

4

Да, если вы откроете d3d9.h, вы увидите # include <windows.h>.

2

Возможно, вы указали права: d3d9.h содержит windows.h.

Но для ясности зависимостей в коде я включу заголовок windows.h. Заголовки sageguard не помогут включать windows.h файл дважды (так как он может сломать блок компиляции). И если в какой-то день в будущем вы удаляете включение d3d9.H, компилятор будет возвращаться к включению файла windows.h, поэтому ваш код все равно будет компилироваться.

1

Любой файл .h, который вы включаете, является только текстовым файлом. Просто откройте свой «d3d9.h» и убедитесь, что он включает «windows.h» или нет.

Однако, даже если он включает в себя «windows.h», по-прежнему не стоит полагаться на этот факт. Если вам нужно «windows.h» - включите его самостоятельно. Это не принесет никакого вреда. Заголовочные файлы обычно защищаются так называемыми «включенными охранниками», которые гарантируют, что тай не включаются более одного раза.