[英]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.