Unresolved externals in relaton to textures

Hello!

I would like access to material/texture from code


if (MyObj.Succeeded())
		{
			FTexture2DResource *Res = (FTexture2DResource*)Tex->Resource;


			EPixelFormat Format = Res->GetTexture2DRHI()->GetTexture2D()->GetFormat();

			uint32 Stride;
			BYTE* buf = (BYTE*)RHILockTexture2D(Res->GetTexture2DRHI(), 0, RLM_WriteOnly, Stride, false);
.....


but I get unresolved externals for Debug Editor configuration, however I can build it with simple Debug.
these functions seems to be core, so I dont understand why it isnt linked…


Error	4	error LNK1120: 3 unresolved externals	F:\Spirits\SpiritsUE\Spirits\Binaries\Win64\UE4Editor-Spirits-Win64-DebugGame.dll	Spirits
Error	1	error LNK2019: unresolved external symbol "__declspec(dllimport) public: enum EPixelFormat __cdecl FRHITexture::GetFormat(void)const " (__imp_?GetFormat@FRHITexture@@QEBA?AW4EPixelFormat@@XZ) referenced in function "public: void __cdecl ASpiritsHUD::onQuit(void)" (?onQuit@ASpiritsHUD@@QEAAXXZ)	F:\Spirits\SpiritsUE\Spirits\Intermediate\ProjectFiles\SpiritsHUD.cpp.obj	Spirits
Error	2	error LNK2019: unresolved external symbol "__declspec(dllimport) void * __cdecl RHILockTexture2D(class FRHITexture2D *,unsigned int,enum EResourceLockMode,unsigned int &,bool)" (__imp_?RHILockTexture2D@@YAPEAXPEAVFRHITexture2D@@IW4EResourceLockMode@@AEAI_N@Z) referenced in function "public: void __cdecl ASpiritsHUD::onQuit(void)" (?onQuit@ASpiritsHUD@@QEAAXXZ)	F:\Spirits\SpiritsUE\Spirits\Intermediate\ProjectFiles\SpiritsHUD.cpp.obj	Spirits
Error	3	error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl RHIUnlockTexture2D(class FRHITexture2D *,unsigned int,bool)" (__imp_?RHIUnlockTexture2D@@YAXPEAVFRHITexture2D@@I_N@Z) referenced in function "public: void __cdecl ASpiritsHUD::onQuit(void)" (?onQuit@ASpiritsHUD@@QEAAXXZ)	F:\Spirits\SpiritsUE\Spirits\Intermediate\ProjectFiles\SpiritsHUD.cpp.obj	Spirits


any help appreciated

ok my team mate solved the issue:
to .build.cs:



	PublicDependencyModuleNames.AddRange(new string] { "Core", "CoreUObject", "Engine", "InputCore", "RHI" });


though interesting that I need figure out this and add manually…
documentation should point to this prerequisite… or maybe I just missed it.

https://docs.unrealengine.com/latest/INT/API/Runtime/RHI/FRHITexture/index.html
Bottom of the page: “Module: RHI”

Kinda hard to see, though.

ah thanks. probably missed. :slight_smile: