Использование командного файла для отправки аргументов в приложение MF C с GUI - PullRequest
0 голосов
/ 15 января 2020

Я ищу наилучший из возможных подходов для включения командного файла для отправки аргументов в приложение MF C вместо использования интерфейса GUI. Кто-нибудь знает лучший способ go сделать это?

Ответы [ 2 ]

1 голос
/ 20 января 2020

Я использую следующий код в моем InitInstance методе моего класса приложения:

LPWSTR *szArglist = nullptr;
int iNumArgs = 0;
szArglist = CommandLineToArgvW(GetCommandLine(), &iNumArgs);
if (iNumArgs > 0 && szArglist != nullptr)
{
    for (int iArg = 0; iArg < iNumArgs; iArg++)
    {
        CString strArg(szArglist[iArg]);
        int iDelim = strArg.Find(_T("="));
        if (iDelim != -1)
        {
            CString strParamName = strArg.Left(iDelim);
            CString strParamValue = strArg.Mid(iDelim + 1);
            if (strParamName.CollateNoCase(_T("/lang")) == 0)
            {
                m_strPathLanguageResourceOverride.Format(_T("%sMeetSchedAssist%s.dll"),
                    (LPCTSTR)GetProgramPath(), (LPCTSTR)strParamValue.MakeUpper());

                if (!PathFileExists(m_strPathLanguageResourceOverride))
                    m_strPathLanguageResourceOverride = _T("");
            }
        }
    }

    // Free memory allocated for CommandLineToArgvW arguments.
    LocalFree(szArglist);
}

Как видите, я использую CommandLineToArgvW метод извлечения и обработки аргументов командной строки.

0 голосов
/ 16 января 2020

Программа GUI может получать аргументы командной строки так же, как программа командной строки.

Ваш класс Application (CWinApp, если память служит) содержит член с именем m_lpCmdLine, который содержит аргументы командной строки (если есть) в CString.

Если вы также хотите иметь дело с параметрами оболочки, вы, вероятно, также захотите взглянуть на WinApp::ParseCommandLine и CCommandLineInfo (обратите внимание, если вы имеете дело с программой, созданной мастером, есть вероятность, что WinApp::ParseCommandLine уже вызывается по умолчанию).

...