Udostępnij przez


Konwertowanie ciągów

[Funkcja skojarzona z tą stroną, MCI, jest starszą funkcją. Został zastąpiony przez MediaPlayer. MediaPlayer został zoptymalizowany pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer zamiast MCI, jeśli jest to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Jeśli używasz funkcji mciSendString, wszystkie wartości przekazywane za pomocą polecenia i wszystkie wartości zwracane są ciągami tekstowymi, więc aplikacja wymaga procedur konwersji, aby przetłumaczyć zmienne na ciągi lub z powrotem. Poniższy przykład pobiera prostokąt źródłowy i konwertuje zwrócony ciąg na współrzędne prostokątne.

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;
}
 

Notatka

Struktury RECT są obsługiwane inaczej w MCI niż w innych częściach systemu Windows; w MCI człon prawy zawiera szerokość prostokąta, a człon dolny zawiera jego wysokość. W interfejsie ciągu prostokąt jest określony jako X1, Y1, X2i Y2. Współrzędne X1 i Y1 określają lewy górny róg prostokąta, a współrzędne X2 i Y2 określają szerokość i wysokość.