(hoàn thành bản sao của http://old.nabble.com/C%2B%2B-pointer-to-method-as-parameter-to-C--td17645155.html, nhưng không thể làm cho công việc vĩ mô đề xuất)Các đại biểu trong SWIG - C#
Tôi đã có C++ hàm sau (giản thể):
InputPort addInputPort(void(*callback)(InputPort));
Vấn đề: các chữ ký của người tạo ra chức năng C# là:
public InputPort addInputPort(SWIGTYPE_p_f__InputPort____void callback)
SWIGTYPE_p_f__InputPort____void
không phải là một đại biểu (và không có constructor nào anyway), vì vậy tôi không thể sử dụng addInputPort.
Làm cách nào để yêu cầu SWIG sử dụng đại biểu thay thế? Nếu giải pháp liên quan đến% typemap, , vui lòng kiên nhẫn hơn với tôi ...
Tôi đoán C++/CLI không phải là một tùy chọn? –
Tôi phải điều tra thêm, nhưng tôi sợ nó không phải là: phần lớn phần mềm trung gian được biên dịch trước! – Calvin1602
Cùng một vấn đề. Ban đầu tôi đã sử dụng PInvoke (Chi tiết trong câu hỏi http://stackoverflow.com/questions/11909484/how-to-use-c-sharp-backgroundworker-to-report-progress-in-native-c-code). Bây giờ tôi đang cố gắng sử dụng SWIG, nhưng mã trở nên rất cồng kềnh ... và tôi cũng không thể nhận ra làm thế nào để làm việc với các đại biểu. – sergtk