Ciao,
ho difficoltà nell'utilizzare una funzione esportata da una lib C++ in un progetto .NET in C#.
Mostro il codice: (C++)
codice:
__declspec(dllexport) void FuncC(
Mlp* net,
double **inputPatterns,
double **outputPatterns,
uint inputRows,
uint num_input_units,
uint num_units_for_output_layer,
double errorTarget = 0.01,
uint maxEpochs = 10000,
double maxUpdateValue = 50.0,
double minupdateValue = 0.001,
double growthFactor = 1.2,
double decreaseFactor = 0.5
)
{
....
Nel passare le due matrici double ho sempre un'eccezzione... ({"Tentativo di lettura o scrittura della memoria protetta. Spesso questa condizione....etc) dipende cmq da un passaggio di parametri errato a quanto ho capito.... ho provato ad impostare vari parametri per le marshal ma non ho capito.
In teoria dovrebbe essere dal codice C#:
codice:
[DllImport("libsann.dll", CallingConvention=CallingConvention.Cdecl)]
public extern static void FuncSharp(
IntPtr net,
[In, Out] double[,] inputPatterns,
[In, Out] double[,] outputPatterns,
uint inputRows,
uint numberOfInputUnits,
uint numberOfUnitsForOutputLayer,
double errorTarget = 0.01,
uint maxEpochs = 100000,
double maxUpdateValue = 50.0,
double minUpdateValue = 0.001,
double growthFactor = 1.2,
double decreaseFactor = 0.5);
Ho letto qui:
http://msdn.microsoft.com/en-us/library/hk9wyw21.aspx
secondo voi?
grazie.