Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)
準(zhǔn)備開(kāi)始學(xué)一學(xué)d3d,聽(tīng)說(shuō)《Introduction to 3D Game Programming with DirectX 12》這本書(shū)不錯(cuò),于是就拿來(lái)學(xué)一學(xué)。不料第一個(gè)例子,按照書(shū)中的指示,就總是編譯錯(cuò)誤,錯(cuò)誤的提示是“C2102 &要求左值”。
仔細(xì)去看錯(cuò)誤所在的代碼,發(fā)現(xiàn)代碼中用&給一個(gè)臨時(shí)變量取地址,看起確實(shí)不太合理,是不是錯(cuò)誤呢? 我新建了一個(gè)工程,寫(xiě)了一個(gè)簡(jiǎn)單的例子:
#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; }編譯。。。確實(shí)錯(cuò)誤! 并且是同樣的C2102錯(cuò)誤。難道書(shū)中的例子錯(cuò)了,作者不可能把編譯都不通過(guò)的例子給讀者吧,這不合理。
因此可能就是運(yùn)行環(huán)境的問(wèn)題,書(shū)中的指示是按照VS 2015來(lái)的,我的環(huán)境是VS 2019。難道是這個(gè)錯(cuò)誤再VS 2015中就不是錯(cuò)誤,而在VS 2019中就是錯(cuò)誤。聽(tīng)起來(lái)有可能,因?yàn)閂S 2019確實(shí)檢查比VS 2015嚴(yán)格。那有沒(méi)有方法讓VS 2019檢查不那么嚴(yán)格呢,有的! 將項(xiàng)目屬性中的【語(yǔ)言】的【符合模式】設(shè)置為否,檢查就不嚴(yán)格了。
重新編譯簡(jiǎn)單樣例,OK! 編譯通過(guò)!
編譯書(shū)中的這個(gè)例子,同樣可以編譯通過(guò)。 Yes!
總結(jié)
以上是生活随笔為你收集整理的Introduction to 3D Game Programming with DirectX 12一书学习记录(第一个例子编译错误)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用numba要注意的越界问题
- 下一篇: 3维旋转的3种表示方法之间的关系