Ho una funzione in C++ void someFunc(char* arg1, int* arg2)
cui voglio schierare i parametri come io uso questa funzione in C# (dopo l'importazione della DLL) ..Marshalling int * a C#
Can you pls dirmi come dovrei Marshall come sono confuso qui.
[DllImport(Dllname)]
extern void someFunc([MarshallAsAttribute(UnmanagedType,LPStr)] string arg1, IntPtr arg2);
Devo utilizzare un IntPtr qui? Non riesco a passare l'indirizzo di qualsiasi variabile int da C# in modo che possa finire nel puntatore in C++?
È possibile utilizzare effettivamente i puntatori nativi in C#, utilizzando blocchi di codice non sicuri. Anche se non lo consiglierei, perché conduce a un'API non intuitiva. –
Avrai bisogno di descrivere il significato di quei puntatori. In particolare quanti dati puntano anche loro, se la funzione mantiene i puntatori dopo che è ritornata, e se si vuole passare "null" a loro. – CodesInChaos