다음을 통해 공유


문자열 변환

[이 페이지 MCI와 연결된 기능은 레거시 기능입니다. MediaPlayer로 대체되었습니다. MediaPlayer는 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 MCI 대신 MediaPlayer를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

mciSendString 함수를 사용하는 경우 명령과 함께 전달된 모든 값과 모든 반환 값은 텍스트 문자열이므로 애플리케이션에서 변수에서 문자열로 또는 다시 변환하는 변환 루틴이 필요합니다. 다음 예제에서는 원본 사각형을 검색하고 반환된 문자열을 사각형 좌표로 변환합니다.

BOOL GetSourceRect(LPTSTR lpstrAlias, LPRECT lprc) 
{ 
    TCHAR achRetBuff[128]; 
    TCHAR achCommandBuff[128]; 

    int result;
    MCIERROR err;
 
    // Build the command string. 
    result = _stprintf_s(
        achCommandBuff, 
        TEXT("where %s source"), 
        lpstrAlias); 

    if (result == -1)
    {
        return FALSE;
    }
    
    // Clear the RECT.
    SetRectEmpty(lprc);
 
    // Send the MCI command. 
    err = mciSendString(
        achCommandBuff, 
        achRetBuff, 
        sizeof(achRetBuff), 
        NULL);

    if (err != 0)
    {
        return FALSE;
    }
        
    // The rectangle is returned as "x y dx dy". 
    // Translate the string into the RECT structure. 

    // Warning: This example omits error checking
    // for the _tcstok_s and _tstoi functions.
    TCHAR *p; 
    TCHAR *context;

    // Left.
    p = _tcstok_s(achRetBuff, TEXT(" "), &context);
    lprc->left = _tstoi(p);

    // Top.
    p = _tcstok_s(NULL, TEXT(" "), &context);
    lprc->top = _tstoi(p);

    // Right.
    p = _tcstok_s(NULL, TEXT(" "), &context);
    lprc->right = _tstoi(p);
    
    // Bottom.
    p = _tcstok_s(NULL, TEXT(" "), &context);
    lprc->bottom = _tstoi(p);

    return TRUE;
}
 

참고

RECT 구조는 MCI에서 Windows의 다른 부분과 다르게 처리됩니다. MCI에서 오른쪽 멤버는 사각형의 너비를 포함하고 아래쪽 멤버는 높이를 포함합니다. 문자열 인터페이스에서 사각형은 X1, Y1, X2Y2로 지정됩니다. 좌표 X1Y1 은 사각형의 왼쪽 위 모서리를 지정하고 좌표 X2Y2 는 너비와 높이를 지정합니다.