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

中看到它时没有意识到它需要它