#c #winapi #directx
#c #winapi #directx
Вопрос:
Sidenode: я никого не прошу помочь мне с руководством по directx. Я думаю, что эта ошибка является обычной ошибкой API win32 Visual Studio.
Привет, ребята и девушки, я пытаюсь изучить DirectX 11 для развлечения, и я нашел эти примеры directx11 на github. Теперь я пытаюсь понять каждую функцию и посмотреть, как все работает вместе. Я создал новый проект VS, просто чтобы поиграть с материалом. Я скопировал и вставил весь код в Tutorial02.cpp в моем собственном проекте я создал новый фильтр под названием «Шейдеры» и изменил свойства моего решения VS. На данный момент у меня нет никаких проблем с компиляцией моего кода. Как только я добавляю Tutorial02.fx, Tutorial02_VS.hlsl и Tutorial02_PS.hlsl в решение, VS не может скомпилироваться и выдает следующий код ошибки:
X3501 'main': entrypoint not found Project00 C:UsersMeowDesktopdirectx-testsProject00Project00Project00FXC 1
Ссылка на Github (directx11 tutorial main file):https://github.com/walbourn/directx-sdk-samples/blob/master/Direct3D11Tutorials/Tutorial02/Tutorial02.cpp
Что я сделал:
- Я создал новый проект VS с именем Project00 в папке directx-tests
- Я создал новый файл с именем Source.cpp
- Я скопировал-вставил все из Tutorial02.ccp (github) в свой Source.cpp
- Я добавил файл resource.h в свой проект
- Я добавил в раздел «Project00 -> Свойства -> Компоновщик -> Ввод» те же библиотеки, что и в руководстве
d3d11.lib
d3dcompiler.lib
dxguid.lib
winmm.lib
comctl32.lib
- Я изменил в разделе «Свойства -> Ссылка -> Система» подсистему на Windows (:SUBSYSTEM / WINDOWS)
- Я скопировал и вставил файлы .hlsl и .fx в каталог моего проекта (еще не добавил его в решение VS) В этот момент он работает просто отлично. Он компилируется без проблем.
Но когда я добавляю Tutorial02.fx, Tutorial02_VS.hlsl и Tutorial02_PS.hlsl в мой шейдерный фильтр или любой другой фильтр и перекомпилирую, visual Studio сообщает мне: ‘main’: точка входа не найдена — как только я снова удаляю (не удаляю) файлы, все работает просто отлично.
Кто-нибудь знает почему?
(В учебном решении они также добавляют эти файлы в решение, и оно работает просто отлично)
Комментарии:
1. Вы не хотите создавать
.fx
. Он просто используется как включаемый. Вероятно, следует переименовать его.fxh
в этом руководстве, чтобы избежать этой боли.
Ответ №1:
С помощью демонстрации на github я могу воспроизвести эту проблему. Вы можете обратиться к скриншотам ниже, чтобы изменить:
Свойства Tutorial02.fx:
Свойства Tutorial02_PS.hlsl:
Свойства Tutorial02_VS.hlsl:
Вы также можете обратиться к страницам свойств HLSL, чтобы узнать, как создаются отдельные файлы шейдеров HLSL.