2

これはおそらく初心者の質問ですが、私は C++ があまり得意ではなく、まだ初心者です。私の質問は、文字から末尾のバックスラッシュを削除する方法です:

extern "C" UINT __stdcall DeleteTrailingBackslash(MSIHANDLE hInstall)
{
    HRESULT hr = S_OK;
    UINT er = ERROR_SUCCESS;
    LPWSTR szValueBuf = NULL;
    char szInstallPath[MAX_PATH];

    hr = WcaInitialize(hInstall, "DeleteTrailingBackslash");
    ExitOnFailure(hr, "Failed to initialize");

    WcaLog(LOGMSG_STANDARD, "Initialized.");

    hr = WcaGetProperty(L"INSTALLLOCATION",&szValueBuf);
    ExitOnFailure(hr, "failed to get Install Location");

    wcstombs(szInstallPath, szValueBuf, 260);

    // I would like to strip back the trailing backslashes
    // and re add the property to my MSI
    hr = MsiSetProperty(hInstall, "INSTALLLOCATION",  szInstallPath);
    ExitOnFailure(hr, "failed to set the install location");

    LExit:
    er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
    return WcaFinalize(er);
}

szInstallPathバックスラッシュが 1 つまたは 2 つある場合は、バックスラッシュを削除する必要があります。良いウェブサイトのチュートリアルなどのために、誰かが私を正しい方向に向けることができますか?

ありがとう

4

2 に答える 2