[英]C++ how would I cast a string to a pointer?
我正在使用此C包裝程序來讀取OpenCV函數。
Mat* cv_imread(String* filename, int flags) {
return new Mat(cv::imread(*filename, flags));
}
我認為某處出現故障,因此我嘗試進行測試以確保其編寫正確。 我只需要知道如何創建String*
來填充其第一個參數即可。
char* filename = "~/home/test.jpg"
然后轉換為String*
i / e
(String*)filename
但這是行不通的。我嘗試了許多其他變體以轉換為在線找到的指針,但沒有發現cv_imread
可以接受。 在我的代碼中,必須使filename
參數為String*
而不是其他類型。 但是我可以使用幫助創建一個String*
給予cv_imread
。
編輯:根據您嘗試的編輯
const char* filename = "/home/w/d1";
cv_imread(new string (filename), 1);
但出現錯誤:
無法將參數'1'的'std :: string * {aka std :: basic_string }'轉換為'cv :: String '到'cv :: Mat * cv_imread(cv :: String *,int)'cv_imread(新字符串(文件名),1);
如果您能幫助我,我將不勝感激
使用string::c_str()
獲取字符串的基礎指針:
Mat* cv_imread(String* filename, int flags) {
return new Mat(cv::imread(filename->c_str(), flags));
}
或者您也可以使用string::data()
。 在C ++ 11之后,它們具有相同的功能。
編輯:OP似乎想將char*
傳遞給cv_read
。 然后應該這樣做:
cv_read(new String(filename), 1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.