2.3. Login with C++/Unreal
You can download the DLL here.
Example of login with C++/Unreal
#if _WIN32 || _WIN64
#if _WIN64
#define ENV64BIT
BOOL GetProcAddresses(HINSTANCE *hLibrary, LPCWSTR lpszLibrary, INT nCount, ...)
{
va_list va;
va_start(va, nCount);
if ((*hLibrary = LoadLibrary(lpszLibrary))
!= NULL)
{
FARPROC * lpfProcFunction = NULL;
LPSTR lpszFuncName = NULL;
INT nIdxCount = 0;
while (nIdxCount < nCount)
{
lpfProcFunction = va_arg(va, FARPROC*);
lpszFuncName = va_arg(va, LPSTR);
if ((*lpfProcFunction =
GetProcAddress(*hLibrary,
lpszFuncName)) == NULL)
{
lpfProcFunction = NULL;
return FALSE;
}
nIdxCount++;
}
}
else
{
va_end(va);
return FALSE;
}
va_end(va);
return TRUE;
}
#else
#define ENV32BIT
BOOL GetProcAddresses(HINSTANCE *hLibrary, LPCSTR lpszLibrary, INT nCount, ...)
{
va_list va;
va_start(va, nCount);
if ((*hLibrary = LoadLibrary(lpszLibrary))
!= NULL)
{
FARPROC * lpfProcFunction = NULL;
LPSTR lpszFuncName = NULL;
INT nIdxCount = 0;
while (nIdxCount < nCount)
{
lpfProcFunction = va_arg(va, FARPROC*);
lpszFuncName = va_arg(va, LPSTR);
if ((*lpfProcFunction =
GetProcAddress(*hLibrary,
lpszFuncName)) == NULL)
{
lpfProcFunction = NULL;
return FALSE;
}
nIdxCount++;
}
}
else
{
va_end(va);
return FALSE;
}
va_end(va);
return TRUE;
}
#endif
#endif
private void idcfunctions()
{
/*char buff[100];
std::cin >> buff;*/
//int(__stdcall* GetUserProfileInfo)(int, char*, char*, char*, char*, char*, char*, char*, char*, char*);
int result;
//GetAccessData Parameters
int idcgameid;
char idctk[1024];
char idcuuid[1024];
int userid;
char usercrc[1024];
char country[3];
char language[3];
char currency[3];
//GetUserProfileInfo Parameters
//int userid = 1; //userid is already defined for GetAccessData
char secret[] = "test";
char nick[80];
char email[320];
char status[1024];
char avatar[1024];
char custom[1024];
typedef int (WINAPI *GETACCESSDATA)
(int, LPCSTR, LPCSTR, int*, LPCSTR, LPCSTR, LPCSTR, LPCSTR);
GETACCESSDATA GetAccessData = NULL;
typedef int (WINAPI *GETUSERPROFILEINFO)
(int, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR, LPCSTR);
GETUSERPROFILEINFO GetUserProfileInfo = NULL;
HINSTANCE hLib;
//Params: Instance, libname, number of functionts to import, function pointer 1, function name 1, function pointer 2, function name 2...
if(GetProcAddresses(&hLib, L"idclib.dll", 2, &GetAccessData, "GetAccessData", &GetUserProfileInfo, "GetUserProfileInfo"))
{
gameid = 1;
char idctkaux[1024] = "ae854aeb5b7397da99b5c8aed5eb8cea";
strcpy_s(idctk, strlen(idctkaux) + 1, idctkaux);
char uuidaux[1024] = "6022DAAE-03F7-11E9-BB88-E86A6485A3C7";
strcpy_s(uuid, strlen(uuidaux) + 1,uuidaux);
result = GetAccessData(idcgameid, idctk, idcuuid, &userid, usercrc, country, language, currency);
if (result == 0) {
//Success
result = GetUserProfileInfo(userid, secret, nick, email, status, avatar, custom, country, language, currency);
if (result == 0) {
//Success
}
}
}
if (hLib != NULL)
FreeLibrary(hLib);
}
Last updated
Was this helpful?