설치 프로그램 제작에 가장 범용적으로 사용되는 인스톨실드가 있습니다.
요즘은 Windows Installer 로 제작된 설치 프로그램도 많이 나오는 추세지만 여전히 인스톨실드 로 제작된 많은 설치 프로그램을 만나 볼 수 있습니다.
오늘은 인스톨실드의 문자열 처리에 대해 알아보겠습니다.
c++에 보면 sprintf , CString 클래스에 보면 format 같은 구문으로 문자 뿐만 아니라 숫자까지 입력받아 문자열에 저장하는 기능을 인스톨실드에서도 제공해 주고 있습니다.
IDS_INSTALL_WARNING_PROGRAM 입력된 문자는 %s 입니다.\n 입력된 숫자는 %d입니다.
이 리소스를 사용하여 문자에 할당하는 예제 코드입니다.
LoadStringFromStringTable ("IDS_INSTALL_WARNING_PROGRAM", szMsg );
Sprintf (szString, szMsg, "SMS",3);
MessageBox(szString, SEVERE);
이렇게 해서 메시지 창을 띄워보면 아래와 같이 나오게 됩니다.
보시면 아시겠지만 C++ 의 CString Format 명령과 거의 동일하죠?
문자열을 동적으로 할당하여 즉시 창을 띄우고 싶으시다면
SprintfBox 명령을 사용하시면 됩니다.
아래는 SMS 설치시 Internet Explorer 6.0 설치가 되어 있지 않은 경우 경고창을 띄워주는 코드입니다.
아래과 같은 문구가 리소스에 등록되어 있다고 가정합니다.
IDS_INSTALL_WARNING_PROGRAM %s가 설치되어 있지 않습니다.\n설치 완료 후 다음 단계로 진행하시기 바랍니다.
LoadStringFromStringTable ("IDS_INSTALL_WARNING_PROGRAM", szString ); //리소스에서 문자열 로딩
szPath = "Internet Explorer 6.0";
SprintfBox(INFORMATION, strMsg,szString,szPath,szPath);
그러면 아래와 같은 창이 나오게 됩니다.
이런 방식으로 하나의 문자열에 여러가지 포맷의 문자 또는 숫자입력을 받아 다양한 문자열 처리가 가능하게 됩니다.
댓글 없음:
댓글 쓰기