(duplicado completo de http://old.nabble.com/C%2B%2B-pointer-to-method-as-parameter-to-C--td17645155.html, pero no pudo hacer el trabajo de macro propuesta)delegados en el TRAGO - C#
que tengo la siguiente función en C++ (simplificado):
InputPort addInputPort(void(*callback)(InputPort));
problema: las la firma de la función C# generado es:
public InputPort addInputPort(SWIGTYPE_p_f__InputPort____void callback)
SWIGTYPE_p_f__InputPort____void
no es un delegado (y no tiene un constructor público de todos modos), por lo que no se puede utilizar addInputPort.
¿Cómo le digo a SWIG que use un delegado? Si la solución implica% typemap, por favor sea paciente adicional conmigo ...
Supongo que C++/CLI no es una opción? –
Debo investigar más, pero me temo que no es así: ¡grandes piezas precompiladas de middleware adelante! – Calvin1602
El mismo problema. Inicialmente utilicé PInvoke (Detalles en cuestión http://stackoverflow.com/questions/11909484/how-to-use-c-sharp-backgroundworker-to-report-progress-in-native-c-code). Ahora trato de usar SWIG, pero el código se vuelve muy engorroso ... y tampoco me doy cuenta de cómo trabajar con los delegados. – sergtk