LNK2019 Unresolved External Symbol,不知道为什么?
LNK2019 Unresolved External Symbol, Can't figure out why?
提前致歉,因为这很可能是我自己无能为力,无法找到错误而只是忽略了答案。
反正;在我进入 LNK2019 的入口点 I 运行 调用 XEngine::MapConstBufferData
时,我完全不知道为什么,但相信错误在于它是模板函数这一事实,非常感谢所有帮助!
XTypes.h
struct TRANSLATE2D
{
FLOAT OffsetX, OffsetY;
};
XEngine.h
template <class BufferType>
VOID MapConstBufferData(ComPtr<ID3D11Buffer> Buffer, BufferType BufferData, UINT Size);
XEngine.cpp
template <class BufferType>
VOID XEngine::MapConstBufferData(ComPtr<ID3D11Buffer> Buffer, BufferType BufferData, UINT Size)
{
Contents are irrelevant.
}
EntryPoint.cpp
INT MAIN
{
XTYPES::TRANSLATE2D Translate{};
Engine.MapConstBufferData<XTYPES::TRANSLATE2D>(Engine.GetConstBuffer(), Translate, sizeof(XTYPES::TRANSLATE2D));
// ^ LNK2019: Unresolved External
Contents are irrelevant.
}
模板需要仅头文件实现或显式实例化。
编译器在 EntryPoint.cpp 中看到模板时无法对其进行编码,因为它没有规则。
编译器在 XEngine.cpp
中看到它时没有意识到它需要它
提前致歉,因为这很可能是我自己无能为力,无法找到错误而只是忽略了答案。
反正;在我进入 LNK2019 的入口点 I 运行 调用 XEngine::MapConstBufferData
时,我完全不知道为什么,但相信错误在于它是模板函数这一事实,非常感谢所有帮助!
XTypes.h
struct TRANSLATE2D
{
FLOAT OffsetX, OffsetY;
};
XEngine.h
template <class BufferType>
VOID MapConstBufferData(ComPtr<ID3D11Buffer> Buffer, BufferType BufferData, UINT Size);
XEngine.cpp
template <class BufferType>
VOID XEngine::MapConstBufferData(ComPtr<ID3D11Buffer> Buffer, BufferType BufferData, UINT Size)
{
Contents are irrelevant.
}
EntryPoint.cpp
INT MAIN
{
XTYPES::TRANSLATE2D Translate{};
Engine.MapConstBufferData<XTYPES::TRANSLATE2D>(Engine.GetConstBuffer(), Translate, sizeof(XTYPES::TRANSLATE2D));
// ^ LNK2019: Unresolved External
Contents are irrelevant.
}
模板需要仅头文件实现或显式实例化。
编译器在 EntryPoint.cpp 中看到模板时无法对其进行编码,因为它没有规则。
编译器在 XEngine.cpp
中看到它时没有意识到它需要它