提前道歉,因為這很可能是我自己無能為力找到錯誤并且只是忽略了答案。
反正; 在我的入口點呼叫時XEngine::MapConstBufferData,我遇到了 LNK2019,我不知道為什么,但相信錯誤在于它是模板函式這一事實,非常感謝所有幫助!
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.
}
入口點.cpp
INT MAIN
{
XTYPES::TRANSLATE2D Translate{};
Engine.MapConstBufferData<XTYPES::TRANSLATE2D>(Engine.GetConstBuffer(), Translate, sizeof(XTYPES::TRANSLATE2D));
// ^ LNK2019: Unresolved External
Contents are irrelevant.
}
uj5u.com熱心網友回復:
模板需要僅頭檔案實作或顯式實體化。
當它在 EntryPoint.cpp 中看到模板時,編譯器無法對模板進行編碼,因為它沒有規則。
編譯器在 XEngine.cpp 中看到它時沒有意識到它需要它
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/415744.html
標籤:
