gpt4 book ai didi

c++ - "Extern"与 DirectX 变量?

转载 作者:行者123 更新时间:2023-11-30 04:35:14 25 4
gpt4 key购买 nike

出于某种原因,每当我将 directx 变量声明为 extern 时,我都会收到链接错误。

例子:

在一些头文件中:

extern ID3D10EffectMatrixVariable* pWorldVariable;

在其他一些 cpp 文件中,我包含了包含 pd3dDevice 的 .h 文件:

pWorldVariable = NULL;

会弹出类似这样的错误:

2>main.obj : error LNK2001: unresolved external symbol "struct ID3D10EffectMatrixVariable * pProjectionVariable" (?pProjectionVariable@@3PAUID3D10EffectMatrixVariable@@A) 2>C:\Users\steve\documents\visual studio 2010\Projects\Shyr\Debug\Shyr.exe : fatal error LNK1120: 1 unresolved externals

在我去掉 extern 声明的那一刻,它的编译就像一个魅力。当然,我实际上想从我正在处理的 dll 中引用几个变量,例如我的交换链、设备、目标 View 等。有人知道怎么回事吗?

(另外,是的,它只声明了一次)

为了证明问题与 DirectX 变量无关,我创建了一个外部变量“george”并将其初始化为 4。然后我在别处引用它并更改了值。编译得很好。

最佳答案

extern 用于声明一种对跨源文件外部使用的变量的引用(即,您通常声明变量并在每个文件中使用它您必须使用 extern)

声明对其的 内部引用

您还必须在源文件中声明变量。

例子.cpp

ID3D10EffectMatrixVariable* pWorldVariable = 0;

YetAnotherFile.cpp

extern ID3D10EffectMatrixVariable * pWorldVariable;

关于c++ - "Extern"与 DirectX 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5527063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com