2011. 10. 14. 16:08
concat과 printf를 동시에 수행하는 함수 공유
2011. 10. 14. 16:08 in 프로그래밍/Let's Share it
위 함수는 하나의 buffer에 printf를 concat하면서 진행합니다.
strsafe 함수군을 사용하므로, #include <strsafe.h>를 include 선언 마지막에 추가해야 합니다.
(ANSI 전용 함수만 공유합니다. StringCchPrintf와 _tcslen으로 변경하면, TCHAR 사용 가능합니다.)
파라미터 설명보다 아래 사용예를 보시는것이 편합니다.
막 사용한 예)
CHAR sz[35] = {0,};
INT nPos = 0;
StringCbVPrintfAppendA(sz, 35, nPos, &nPos, "__%s, %d__", "abc", 555);
StringCbVPrintfAppendA(sz, 35, nPos, &nPos, "****%s, %d****", "abc", 1111);
StringCbVPrintfAppendA(sz, 35, nPos, &nPos, "@%s, %d@", "qwerty", 1231);
StringCbVPrintfAppendA(sz, 35, nPos, &nPos, "@%s, %d@", "qwerty", 1231);
가 되면,
__abc,555__ ==> __abc,555__***abc, 1111**** => __abc,555__***abc, 1111**** => __abc,555__***abc, 1111****
와 같이 sz값이 변경됩니다.
즉, 넘치게 되면 추가되지 않습니다.
리턴값이 ERROR_SUCCESS 이면 제대로 성공한 것이고,
위와 같이 버퍼가 모자란 경우에는 ERROR_MORE_DATA가 리턴됩니다.
해당값이 리턴되면, 버퍼의 크기를 늘려서 다시 호출하면 됩니다. :)
'프로그래밍 > Let's Share it' 카테고리의 다른 글
비동기(OVERLAPPED I/O, IOCP, Thread Pool) IPC PIPE Class 공유 (0) | 2011.12.14 |
---|---|
[ATL/MFC/C++] Ini Parser(ini 파서) (0) | 2011.11.30 |
Window Event Log(윈도우 이벤트 로그) 읽기 (9) | 2011.07.20 |
Proxy 서버 구하기 (자동 구성 스크립트, pac) (0) | 2011.04.04 |
Windows 확장자 등록 Helper 함수 공유 (0) | 2011.03.31 |