這是我的C函數的定義:我可以通過C++/CLI包裝將C#數組傳遞給C指針嗎?
//C
int FXForwardRate(
long *riskZCDates, /* (I) Risk ZC dates */
double *fwdRate); /*(O) Output */
第一參數實際上是指向的長的陣列。 在C#我會非常喜歡這樣稱呼它:
//C#
int[] array = {1,2,3}; //if i'm not mistaking long in C is int in :NET
double fwdRate = 0;
Class1.FXForwardRate(array, ref fwdRate);
現在對於我的C++/CLI代碼,我不知道如何聲明在Class 1類功能(我沒有把整個代碼要簡明扼要):
//C++/CLI
int Class1::FXForwardRateW(int[] premium, double %fwdRate)
{
double _tempFwdRate = 0.0;
int _status = FXForwardRate(premium, &_tempFwdRate);
fwdRate = _tempFwdRate;
return _status;
}
我從另一個函數我寫了什麼,我做了第二個參數所知道的是正確的(不知道它的雖然是最好的方法)。但第一個呢?我應該做同樣的事情嗎?即:定義一個指針將它傳遞給C函數,然後將值複製回數組? 問候
您是否需要「固定」陣列/對象? – 2011-09-16 15:23:25