차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
ko:bs2_getuserdatas [2021/12/02 11:28]
mark [함수]
ko:bs2_getuserdatas [2021/12/29 10:23]
mark [반환값]
줄 24: 줄 24:
 <callout type="​info">​ <callout type="​info">​
 <div> <div>
-[[C++]]+C++
 <code cpp> <code cpp>
 +
 sdkResult = BS2_GetUserDatas(context_,​ id, const_cast<​char*>​(uid.c_str()),​ numUser, &​userBlob,​ userMask); sdkResult = BS2_GetUserDatas(context_,​ id, const_cast<​char*>​(uid.c_str()),​ numUser, &​userBlob,​ userMask);
 if (BS_SDK_SUCCESS != sdkResult) if (BS_SDK_SUCCESS != sdkResult)
 { {
- TRACE("​BS2_GetUserDatas call failed: %d", sdkResult);​ +      ​TRACE("​BS2_GetUserDatas call failed: %d", sdkResult);​ 
- return sdkResult;​ +      return sdkResult;​ 
- }+} 
 + 
 +</​code>​ 
 +C# 
 +<code aspx> 
 +result = (BS2ErrorCode)API.BS2_GetUserDatas(sdkContext,​ deviceID, curUidObjs, available, userBlobs, (UInt32)BS2UserMaskEnum.ALL);​
 </​code>​ </​code>​
 </​div>​ </​div>​
줄 65: 줄 71:
 성공적으로 수행될 경우 ''​BS_SDK_SUCCESS''​를 반환하고,​ 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. 성공적으로 수행될 경우 ''​BS_SDK_SUCCESS''​를 반환하고,​ 에러가 발생할 경우 상응하는 에러 코드를 반환합니다.
 \\  \\ 
 +
 +==== 샘플코드 ====
 +C#
 +<code cpp>
 + if (numUserIds > 0)
 +                {
 +                    IntPtr curUidObjs = outUidObjs;
 +                    BS2UserBlob[] userBlobs = new BS2UserBlob[USER_PAGE_SIZE];​
 +
 +                    Console.WriteLine("​Number of users : ({0}).",​ numUserIds);​
 +                    for (UInt32 idx = 0; idx < numUserIds; )
 +                    {
 +                        UInt32 available = numUserIds - idx;
 +                        if(available > USER_PAGE_SIZE)
 +                        {
 +                            available = USER_PAGE_SIZE;​
 +                        }
 +
 +                        result = (BS2ErrorCode)API.BS2_GetUserDatas(sdkContext,​ deviceID, curUidObjs, available, userBlobs, (UInt32)BS2UserMaskEnum.ALL);​
 +                        if (result == BS2ErrorCode.BS_SDK_SUCCESS)
 +                        {
 +                            for (UInt32 loop = 0; loop < available; ++loop)
 +                            {
 +                                print(sdkContext,​ userBlobs[loop].user);​
 +                                // don't need to release cardObj, FingerObj, FaceObj because we get only BS2User
 +                                if (userBlobs[loop].cardObjs != IntPtr.Zero)
 +                                    API.BS2_ReleaseObject(userBlobs[loop].cardObjs);​
 +                                if (userBlobs[loop].fingerObjs != IntPtr.Zero)
 +                                    API.BS2_ReleaseObject(userBlobs[loop].fingerObjs);​
 +                                if (userBlobs[loop].faceObjs != IntPtr.Zero)
 +                                    API.BS2_ReleaseObject(userBlobs[loop].faceObjs);​
 +                            }
 +
 +                            idx += available;
 +                            curUidObjs += (int)available*BS2Environment.BS2_USER_ID_SIZE;​
 +                        }
 +                        else
 +                        {
 +                            Console.WriteLine("​Got error({0}).",​ result);
 +                            break;
 +                        }
 +                    }
 +
 +                    API.BS2_ReleaseObject(outUidObjs);​
 +                }
 +</​code>​
 +
 ==== 함께 보기 ==== ==== 함께 보기 ====
 [[BS2_GetUserList]]\\ [[BS2_GetUserList]]\\