Ciao a tutti.
Approfittando della reclusione della quarantena ho iniziato a passare nottate su visual studio, ho fatto un programmino winform che richiama una funzione di matlab, per chi è interessato è spiegato come fare su questo link:
https://it.mathworks.com/help/matlab/matlab_external/call-matlab-function-from-c-client.html
Per fare il setup ho usato advanced installer.
Il codice è questo, nell'evento del click bottone
double a = 2;
double b = 4;
// Create the MATLAB instance
MLApp.MLApp matlab = new MLApp.MLApp();
// Change to the directory where the function is located
matlab.Execute(@"cd c:\CartellaFunzioneMatlab");
// Define the output
object result = null;
// Call the MATLAB function myfunc
matlab.Feval("FunzSom", 1, out result, a, b);
// Display result
object[] res = result as object[];
double c = Convert.ToDouble(res[0]);
Ho creato una cartella in c:\ chiamata CartellaFunzioneMatlab" dove ho messo il file matlab FunzSom.m richiamato da Matlab execute.
Ho aggiunto nei riferimenti la COM
Ora il problema è che in debug da visual studio va bene, se la installo sul mio pc su cui ho matlab r2018a va tutto bene, ma se la installo su un altro pc non parte, sul nuovo pc ho anche installato il runtime di matlab della mia stessa versione, ma non va, mi da il seguente errore:
recupero della class factory COM per il componente con CLSID {A6581658-356C-4A72-B26C-9D91262CA7E1} non riuscito a causea del seguente errore: 80040154 interfaccia non registrata(eccezione da HRESULT: 0x 80040154(REGDB_E_CLASSNOTREGREGDB))
Qualcuno sa come risolvere, o cosa voglia dire questa cosa??
Ho letto un po in giro che forse è un problema di qualche dll , ma non so come muovermi.