我正在使用黑箱成本函數(BBCF)的MATLAB優化平臺。將C++代碼編譯爲.EXE,返回雙重
爲了使用戶自由使用,所使用的BBCF可以是輸入BBF的輸入參數並且必須輸出(返回)BBCF的成本值的任何可執行文件,以便MATLAB BBCF優化器找到最好的(至少成本)輸入參數。考慮到一方面,我的BBCF是用C++實現的,另一方面成本價值是雙倍的(實數),我需要將我的代碼編譯成EXE文件,輸出(返回)雙。但是,據我所知,當我將C++代碼編譯爲EXE時,它「主要」編譯main()函數,它的輸出是main()函數的輸出(即,如果運行成功,則爲0! )。
一個想法可以使用返回雙主函數,然後,編譯例如main()中EXE但是,不幸的是,這是不可能在C++中(如在this link說明或權利的this question的第三答案成爲C++的一個bug,這兩者都不是這個問題的關鍵)。
任何人都可以提供一個想法,EXE編譯形式的C++代碼,輸出(返回)一個雙值?
我希望BBCF處理代碼從可執行文件的輸出文件描述符中得到答案。使用類似'printf'或'std :: cout'的形式從C++應用程序寫入。使用'main'的返回值來表示錯誤條件等。 – Rook
@JLev我的問題不是如何在C++中返回非int類型以成爲該問題的重複(我已經看到它)。通過提到這個問題,我解釋說在main()中返回double是不可行的。 – hossayni
你不能建立一個直接返回MATLAB類型的'mex'嗎? –