出于某种原因,每当我将 directx 变量声明为 extern 时,都会收到链接错误。
例子:
在一些头文件中:
extern ID3D10EffectMatrixVariable* pWorldVariable;
在我包含包含 pd3dDevice 的 .h 文件的其他一些 cpp 文件中:
pWorldVariable = NULL;
会弹出类似这样的错误:
2>main.obj:错误 LNK2001:无法解析的外部符号“struct ID3D10EffectMatrixVariable * pProjectionVariable”(?pProjectionVariable@@3PAUID3D10EffectMatrixVariable@@A) 2>C:\Users\steve\documents\visual studio 2010\Projects\Shyr\Debug\Shyr .exe:致命错误 LNK1120:1 未解决的外部
我拿走extern
声明的那一刻,它就像一个魅力。当然,我实际上想从我正在处理的 dll 中引用几个变量,例如我的交换链、设备、目标视图等。有谁知道怎么回事?
(另外,是的,它只声明了一次)
为了证明这个问题与 DirectX 变量无关,我创建了一个外部变量“george”并将其初始化为 4。然后我在其他地方引用它并更改了值。编译就好了。