簡體   English   中英

具有“ int main(int argc,char ** argv)”的VideoCapture

[英]VideoCapture with “ int main(int argc, char **argv) ”

我正在嘗試使用VideoCapture。 我的代碼的一部分在下面。

當我運行我的代碼時,我得到了:

錯誤! 提供的參數不足。

如何將我的視頻與此代碼一起使用。 我想用VLC打開流。 或者,如果還有其他方法,我想使用。

我搜索了argv [1]將是我的視頻文件。 但是我不知道如何顯示我的文件以及如何為此代碼定義我的文件。

為了幫助將來的用戶,我將進行一些更改:

是:

LOG_DEBUG("Error! Insufficient parameters provided.");

是:

std::string program(argv[0]);
LOG_DEBUG("Error! Insufficient parameters provided.");
LOG_DEBUG("Please provide a command line argument.");
LOG_DEBUG("Example:  " << program << " VIDEO_FILE_NAME");

說明:

在命令行上,當調用程序時,命令行中的參數將復制到argv保存的字符串數組中。 argv[0]是第一個參數,它是程序本身的文件名。 換句話說,從命令行在字符串argv的數組中填充0 <= i < argc argv[i] 如果重命名了程序可執行文件,則下次運行程序時argv[0]會有所不同。

數組argv0索引到argc-1 main調用該陣列字符串和的argc的被設置。 這取決於軟件來決定要做什么。 在這種情況下,您的應用程序將測試argc並發現,如果未提供任何參數(即argc <2),則該用戶提供的一個用戶參數不存在,請報告錯誤並返回。

順便說一句,您可以使用另一種形式的main

int main(int argc, char** argv, char** envp)

argc =參數數量。 argv =參數字符串數組envp =環境變量名稱=值對的數組

因此,除了傳遞簡單的命令行參數外,人們還可以選擇編寫main函數來獲取環境變量(而不是外殼變量),並據此決定細微的動作。 選項比比皆是。

但是暫時,如果您的代碼報告了為什么存在錯誤,並且所提供的建議似乎可以解決此問題,那么它會有所幫助。

祝好運。

暫無
暫無

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

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