“&的extern rdquo;的使用DirectX变量?

出于某种原因,每当我将directx变量声明为extern时,我都会收到链接错误。 例: 在一些头文件中:
extern ID3D10EffectMatrixVariable* pWorldVariable;
在其他一些cpp文件中,我包含了包含pd3dDevice的.h文件:
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.然后我在别处引用它并更改了值。编译得很好。     
已邀请:
extern
用于声明对源文件外部使用的变量的一种引用(即,您正常声明变量,并且在您使用它的每个文件中,您必须使用
extern
声明对它的内部引用) 您还必须在源文件中声明该变量。 Example.cpp
ID3D10EffectMatrixVariable* pWorldVariable = 0;
YetAnotherFile.cpp
extern ID3D10EffectMatrixVariable * pWorldVariable;
    
我遇到的问题是不理解外部声明与定义的问题。这个答案有帮助,但你必须阅读整个事情,然后做一些研究来理解它: 定义和声明之间有什么区别?     

要回复问题请先登录注册