Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)
生活随笔
收集整理的這篇文章主要介紹了
Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
準備開始學一學d3d,聽說《Introduction to 3D Game Programming with DirectX 12》這本書不錯,于是就拿來學一學。不料第一個例子,按照書中的指示,就總是編譯錯誤,錯誤的提示是“C2102 &要求左值”。
仔細去看錯誤所在的代碼,發現代碼中用&給一個臨時變量取地址,看起確實不太合理,是不是錯誤呢? 我新建了一個工程,寫了一個簡單的例子:
#include <iostream> using namespace std;struct MyStruct {MyStruct() { x = 0; }int x; };void func(MyStruct* para) {cout << para->x << endl; }int main() {func(&MyStruct());return 0; }編譯。。。確實錯誤! 并且是同樣的C2102錯誤。難道書中的例子錯了,作者不可能把編譯都不通過的例子給讀者吧,這不合理。
因此可能就是運行環境的問題,書中的指示是按照VS 2015來的,我的環境是VS 2019。難道是這個錯誤再VS 2015中就不是錯誤,而在VS 2019中就是錯誤。聽起來有可能,因為VS 2019確實檢查比VS 2015嚴格。那有沒有方法讓VS 2019檢查不那么嚴格呢,有的! 將項目屬性中的【語言】的【符合模式】設置為否,檢查就不嚴格了。
重新編譯簡單樣例,OK! 編譯通過!
編譯書中的這個例子,同樣可以編譯通過。 Yes!
總結
以上是生活随笔為你收集整理的Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用numba要注意的越界问题
- 下一篇: 3维旋转的3种表示方法之间的关系