簡體   English   中英

Windows - 使用可視化庫FMXMain獲取參數

[英]Windows - Get arguments with visual library FMXMain

我正在嘗試獲取在ProjectName.cpp文件(應用程序的文件)中聲明的參數,其中包含以下自動生成的代碼:

extern "C" int FMXmain()
{
    try
    {
        Application->Initialize();
        Application->CreateForm(__classid(TfrmPrincipal), &frmPrincipal);
        Application->CreateForm(__classid(TfrmCarregar), &frmCarregar);
        Application->CreateForm(__classid(TfrmCodigo), &frmCodigo);
        Application->CreateForm(__classid(TfrmConfig), &frmConfig);
        Application->CreateForm(__classid(TfrmImgConf), &frmImgConf);
        Application->CreateForm(__classid(TfrmSobre), &frmSobre);
        Application->CreateForm(__classid(TfrmTradutor), &frmTradutor);
        Application->Run();
    }
    catch (Exception &exception)
    {
        Application->ShowException(&exception);
    }
    catch (...)
    {
        try
        {
            throw Exception("");
        }
        catch (Exception &exception)
        {
            Application->ShowException(&exception);
        }
    }
    return 0;
}

我只想在啟動應用程序時獲取參數,所以我試圖將函數的聲明更改為:

extern "C" int FMXmain(String argv)

extern "C" int FMXmain(wchar_t* argv[]) // as I may need wide char support (TCHAR doesn't seems to be useful in this case)

或(默認)

extern "C" int FMXmain(char* argv[])

我唯一的疑問是如何將我得到的值傳遞給主表單。 我應該在創建后或應用程序運行后傳遞它嗎? 我該怎么做?

OBS:主要形式:frmPrincipal

如果我弄錯了,請告訴我。 PS。:我只是想在雙擊它之后獲取文件路徑(我已經獲得了將我的應用程序鏈接到注冊表的功能)

參考文獻對我有所幫助:

WIKI 雙擊您的文件(擴展名)並使用您的EXE(應用程序)打開它 通過雙擊相關文件打開c ++程序。 我如何獲得文件名?

從現在開始,謝謝你很多。

您可以使用System :: ParamCount()System :: ParamStr()從任何地方(包括FMXMain()檢索命令行參數,而無需修改它)。 這是一個使用表單的OnShow事件處理程序來填充TMemo控件的示例,例如:

void __fastcall TForm1::FormShow(TObject *Sender)
{
  Memo1->Lines->Clear();
  for(int i = 0; i < System::ParamCount(); ++i)
  {
    Memo1->Lines->Add(System::ParamStr(i));
  }
}

ParamStr(0)始終是應用程序本身的完全限定的可執行文件名。

您可以使用IDE中的Run-> Parameters菜單項對其進行測試。 添加一些值作為參數並運行應用程序。

Embarcadero Firemonkey有點像Delphi:您可以從特殊函數獲取命令行參數(argc / argv):

  • ParamCount()

  • ParamStr這()。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM