kyuseo의 게임 프로그래밍

vsprintf : 삼성 바다 웨이브 (BADA WAVE) 스마트폰 개발중 발생되는 문제점 #1 본문

스마트폰 게임 개발

vsprintf : 삼성 바다 웨이브 (BADA WAVE) 스마트폰 개발중 발생되는 문제점 #1

kyuseo 2011. 2. 28. 19:28

개요..

 

제가 개발한 안드로이드, 아이폰 게임 개발용 CK멀티플렛폼 게임 엔진삼성 바다 웨이브 (BADA WAVE) 에 포팅(컨버팅)하면서 발생되는 문제점을 정리해봅니다.

 

 

다음 오류 예고

#include <pthread.h> 컴파일 오류

 

 

CK게임엔진으로 개발한 SK 티스토어와 애플 앱스토어에서 서비스중인 게임들

 

- 클럽맞고 온라인, Bingo Star Live 90 외 다수

 

 

 

vsprintf 문제

 

관련 소스코드

 

inline void _TRACE( LPCSTR szFormat, ... )

{

    char szData[ 4096 ];

 

    va_list args;

    va_start( args, szFormat );

    vsprintf( szData, szFormat, args );

    va_end( args );

 

    fprintf( stderr, szData, 0 );

}

 

 

발생오류 스크린샷

 

 

 

증상 : vsprintf 함수가 존재하지 않는다.

 

 

원인 : 아래와 같이 안전하지 않아 사용할 수 없게 만든 듯 합니다.

 

// Convert numeric value of type double and long double to string and

// return length of string. If vsnprintf is available use it, otherwise

// fall back to the unsafe vsprintf which, in general, can be dangerous

// and should be avoided.

 

 

해결방안 :

 

오류 위치에 아래 코드를 추가한다.

#ifdef OS_BADA

#define TRIO_REPLACE_STDIO

#include "libxml/trio.h"

#endif