Download

FOnlineSubsystemBPCallHelper results in LNK error?

I haven’t been getting much help from AnswerHUB as of late so Im going to try posting here too.

I keep getting a LNK2019 error for the following code:

UDMCreateSessionCallbackProxy.CPP (subclasses: UOnlineBlueprintCallProxyBase)


...
#include "Runtime/Online/OnlineSubsystemUtils/Private/OnlineSubsystemUtilsPrivatePCH.h"
#include "DMCreateSessionCallbackProxy.h"
...
void UDMCreateSessionCallbackProxy::Activate()
{
	FOnlineSubsystemBPCallHelper Helper(TEXT("CreateSession"), GEngine->GetWorldFromContextObject(WorldContextObject));
...
}

Specifically the error reads:


1>DMCreateSessionCallbackProxy.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl FOnlineSubsystemBPCallHelper::FOnlineSubsystemBPCallHelper(wchar_t const *,class UWorld *,class FName)" (??0FOnlineSubsystemBPCallHelper@@QEAA@PEB_WPEAVUWorld@@VFName@@@Z) referenced in function "private: virtual void __cdecl UDMCreateSessionCallbackProxy::Activate(void)" (?Activate@UDMCreateSessionCallbackProxy@@EEAAXXZ)
1>D:\Documents\Unreal Projects\DMagic\Binaries\Win64\UE4Editor-DMagic.dll : fatal error LNK1120: 1 unresolved externals

I know that the include is working because VC has colored the FOnlineSubsystemBPCallHelper text in Activate(), indicating that it is recognized.

The only intellisense errors Im seeing are on the FObjectInitializer& of the constructor.
But if I comment out the FOnlineSubsystemBPCallHelper line in Activate() it all compiles fine, despite the Intellisense error…

Honestly Im not sure Im even going about this the right way.
I want to create a blueprint node that acts like the “Create Session” node, but will allow me to pass in a custom Session class and pass out results like “Find Session” does.
(I don’t know why all the Session related nodes don’t already have that ability…)

Ever figure this out?

I think FOnlineSubsystemBPCallHelper can’t be exposed to other modules, the only solution seems to be to basically create another identical class with a different name and use that instead where needed