Próbuję użyć Octave z Visual C++.Oktawa C++ i VS2010
Pobrałem octave-3.6.1-vs2010-setup-1.exe
. Utworzono nowy projekt, dodano folder oktawy include
, aby dołączyć ścieżkę, octinterp.lib
i octave.lib
do ścieżki biblioteki, a jako katalog bieżący dodano folder Octave bin
.
Program kompiluje i działa poprawnie z wyjątkiem feval
funkcji, która powoduje wyjątek:
Microsoft C++ wyjątek: octave_execution_exception w miejscu pamięci 0x0012faef
i na stronie Octave:
Nieprawidłowa operacja zmiany rozmiaru lub niejednoznaczne przypisanie do elementu tablicy poza obszarem.
Co robię źle?
Kod dla standalone program:
#include <octave/octave.h>
#include <octave/oct.h>
#include <octave/parse.h>
int main(int argc, char **argv)
{
if (octave_main (argc, argv, true))
{
ColumnVector NumRands(2);
NumRands(0) = 10;
NumRands(1) = 1;
octave_value_list f_arg, f_ret;
f_arg(0) = octave_value(NumRands);
f_ret = feval("rand",f_arg,1);
Matrix unis(f_ret(0).matrix_value());
}
else
{
error ("Octave interpreter initialization failed");
}
return 0;
}
góry dzięki.
Zapytałem na ich listę mailingową, wydaje się, że Octave zezwala tylko na łączenie w czasie wykonywania z flagą \ MD. – user629926