StovePCSDK를 사용하기 위해서는 초기화 함수를 먼저 실행해줘야 합니다. 초기화 방법은 StovePCConfig와 StovePCCallback 구조체에 적절한 값을 입력하고 StovePC_Init 함수를 호출합니다. StovePC_Init 함수의 사용방법은 CHelloStoveDlg::OnBnClickedInit 함수에 아래와 같이 입력하여 사용합니다.
void CHelloStoveDlg::OnBnClickedInit()
{
/*여기에 '따라하기' 코드를 추가합니다.*/
//config
StovePCConfig config;
memset(&config, 0, sizeof(StovePCConfig));
config.env = "LIVE";
config.appKey = "YOUR_APP_KEY";
config.secretKey = "YOUR_SECRET_KEY";
config.gameId = L"YOUR_GAME_ID";
config.logLevel = StovePCLogLevel::STOVE_PC_LOG_LEVEL_DEBUG;
config.logPath = L"";
//callback
StovePCCallback callback;
memset(&callback, 0, sizeof(StovePCCallback));
callback.OnError = OnError;
callback.OnInitComplete = OnInitComplete;
callback.OnToken = OnToken;
callback.OnUser = OnUser;
//initialize
StovePCResult result = StovePC_Init(config, callback);
if (result != StovePCResult::STOVE_PC_NO_ERROR)
{
//StovePCSDK initialize fail
_displayConfig(config);
CString log;
log.Format(L"[Error] StovePC_Init, Result %d", result);
OnLog(log);
}
else
{
//StovePCSDK initialize success
_displayConfig(config);
OnLog(L"[Success] StovePC_Init");
//StovePC_Init 함수 호출이 성공했으므로,
//타이머에서 주기적으로 StovePC_RunCallback 함수를 호출합니다.
SetTimer(USER_TIMER, 500, NULL);
}
}
C++
복사
주의사항
PCSDK 로그경로는 절대적경로로 설정해야 합니다. ex) C:\Program Files\{Your Game Folder}\Logs 마지막에 "\"는 추가하지 않습니다. PCSDK 에서 "StovePCSDK.log" 파일명을 자동으로 추가합니다.
만약 "" 빈문자열로 경로를 설정하게 되면 PCSDK는 자동적으로 게임실행파일 폴더 또는 PCSDK DLL 이 위치한 폴더의 경로로 로그가 생성됩니다.
"YOUR_APP_KEY", "YOUR_SECRET_KEY", "YOUR_GAME_ID"는 STOVE Studio (opens new window)로부터 사전에 발급 받은 데이터로 변경해야 됩니다.
만약 STOVE Studio에 입점 신청한 스토브 계정으로 스토브 런처에 로그인 하지 않고 StovePC_Init 함수가 호출되면 150 에러코드(sgup 초기화 실패)가 발생합니다.
위의 코드에 포함되어 있듯이 CHelloStoveDlg::OnBnClickedInit 함수에서 호출한 StovePC_Init 함수의 반환 값이 성공이면 (즉, STOVE_PC_NO_ERROR을 리턴 할 시) StovePC_RunCallback 함수를 타이머에 걸어줘야 합니다. 여기 따라하기 예제에서는 MFC의 SetTimer 함수를 통해, 500ms 마다 StovePC_RunCallback 함수를 호출하도록 코딩하였습니다. SetTimer를 통해 콜백 CHelloStoveDlg::OnTimer함수가 주기적으로 실행될 시에 아래 코드와 같이 StovePC_RunCallback함수를 걸어 둡니다.
void CHelloStoveDlg::OnTimer(UINT_PTR nIDEvent)
{
if (nIDEvent == USER_TIMER)
{
/*여기에 '따라하기' 코드를 추가합니다.*/
StovePC_RunCallback();
}
CDialogEx::OnTimer(nIDEvent);
}
C++
복사
StovePC_Init 함수가 정상적으로 완료됐을 때 호출되는 콜백 OnInitComplete 함수의 주석을 풀고 아래 코드를 작성합니다.
또한 StovePC_Init 함수가 정상적으로 실행되면 콜백 OnInitComplete 함수가 호출됩니다. 즉, OnInitComplete 함수가 호출되면 StovePC_Init 함수가 성공적으로 실행되었음을 의미하여 아래 코드와 같이 StovePCSDK초기화가 성공한 것을 로그로 남길 수 있습니다.
void OnInitComplete()
{
/*여기에 '따라하기' 코드를 추가합니다.*/
OnLog(L"[Success] InitComplete\n");
}
C++
복사
StovePC_Init 함수, 또는 기타 다른 StovePCSDK의 함수 호출이 실패하는 경우 OnError 함수가 호출됩니다. StovePCSDK의 함수 에러를 확인하기 위해 아래 코드를 작성하여 확인할 수 있습니다.
void OnError(const StovePCError error)
{
/*여기에 '따라하기' 코드를 추가합니다.*/
OnLog(L"[Error]\n");
CString log;
log.Format(L"StovePCError occurred\n -funcType: %d, result:%d, externalError: %d", error.functionType, error.result, error.externalError);
OnLog(log);
}
C++
복사