////////
Search
Duplicate

SDK 초기화

생성일
2024/03/14 22:14
태그
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++
복사