由於某些原因,每當我聲明一個directx變量作爲extern,我收到一個鏈接錯誤。帶有DirectX變量的「Extern」?
實施例:
在一些頭文件:
extern ID3D10EffectMatrixVariable* pWorldVariable;
在一些其它的cpp文件,其中我包括含有h文件pd3dDevice:
pWorldVariable = NULL;
類似於此旨意的錯誤彈出:
2> ma in.obj:error LNK2001:無法解析的外部符號「struct ID3D10EffectMatrixVariable * pProjectionVariable」(?pProjectionVariable @@ 3PAUID3D10EffectMatrixVariable @@ A) 2> C:\ Users \ steve \ documents \ visual studio 2010 \ Projects \ Shyr \ Debug \ Shyr。 exe:致命錯誤LNK1120:1無法解析的外部設備
我拿走了extern
聲明的分鐘,它編譯得像一個魅力。當然,我實際上想引用一些變量,比如我的交換鏈,設備,目標視圖等等。任何人都知道發生了什麼事?
(此外,YES,它只是聲明瞭一次)
只是爲了證明這個問題被隔離到DirectX變量,我做了一個外部變量「喬治」,並將其初始化爲4。然後,我引用它和其他地方改變了價值。編譯得很好。
錯誤消息抱怨pProjectionVariable,不pWorldVariable。不過,需要*定義*。 – 2011-04-03 02:38:26
這看起來肯定是問題。我正在切換這麼多變量,試圖弄清楚什麼是錯誤的,我沒有意識到我複製了錯誤的錯誤。也就是說,所有奇怪的directx鏈接錯誤的錯誤都是相同的。當它們被聲明和定義時,它就可以工作。這就是說 - 你怎麼能夠在外部定義一個交換鏈?它需要清零內存並做一堆其他定義? – Darkenor 2011-04-03 02:51:37