由于某些原因,每当我声明一个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