Вызвать функцию c++ из .dll - C#

Узнай цену своей работы

Формулировка задачи:

Имеется dll написанный на с++. В нем одна из вызываемых функций имеет вид
Листинг программы
  1. extern "C"
  2. {
  3. /* ADF Test with pointer
  4. adf_p(double* data, int nobs, int model,int lag_length,double& tstat, double& pvalue);
  5. data = Pointer to datapoints
  6. nobs = Number of observations.
  7. model => 0 = no constant, no trend
  8. 1 = constant, no trend
  9. 2 = constant, trend
  10. lag_length = lagged difference
  11. tstat = reference t-Statistic
  12. pvalue = reference P-Value (MacKinnon (1996))
  13. return => Errorcode
  14. 0 = Everything is OK
  15. 1 = Model is not 0,1 or 2
  16. 2 = Too few Observations
  17. 3 = Covariance matrix is singular
  18. */
  19. __declspec(dllexport) int _stdcall adf_p(double*, int, int,int,double&, double&);
  20. }
Как я понимаю вызывать надо следующим образом [DllImport("unitroot.dll")] public static extern int adf_p(.. ?????...) Что нужно указывать там где поставил знаки вопросов? Что за double* data? Там должен быть массив данных, над которым будут производится исчисления, а не одно значение double. И как потом использовать эту функцию в программе? double tstat; double pvalue; double[] array = {1,2,5,7,9,6,3,2,4,5,8,9}; adf_p(array, 0, 0, 0, out tstat, out pvalue); Так?

Решение задачи: «Вызвать функцию c++ из .dll»

textual
Листинг программы
  1. [DllImport("unitroot.dll")]
  2. public static extern int adf_p(double[] data, int nobs, int model,int lag_length,ref double tstat, ref double pvalue);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут