Tất cả các ví dụ tôi có thể tìm thấy bằng cách sử dụng DLLImport để gọi mã C++ từ C# chuyển ints qua lại. Tôi có thể nhận được những ví dụ này làm việc tốt. Phương thức tôi cần gọi có hai cấu trúc như các tham số nhập của nó và tôi không rõ ràng cách tôi có thể thực hiện công việc này.Làm thế nào để sử dụng DLLImport với cấu trúc như các tham số trong C#?
Đây là những gì tôi phải làm việc với:
Tôi sở hữu ++ mã C, vì vậy tôi có thể thực hiện bất kỳ thay đổi/bổ sung vào nó mà tôi cần.
Ứng dụng của bên thứ ba sẽ tải DLL của tôi khi khởi động và dự kiến DLLExport được xác định theo một cách nhất định, vì vậy tôi không thể thay đổi chữ ký phương thức được xuất.
Ứng dụng C# tôi đang xây dựng sẽ được sử dụng làm trình bao bọc để tôi có thể tích hợp phần C++ này vào một số ứng dụng khác của chúng tôi, tất cả được viết bằng C#.
C++ phương pháp chữ ký tôi cần phải gọi trông như thế này
DllExport int Calculate (const MathInputStuctType *input,
MathOutputStructType *output, void **formulaStorage)
Và MathInputStructType được định nghĩa như sau
typedef struct MathInputStuctTypeS {
int _setData;
double _data[(int) FieldSize];
int _setTdData;
} MathInputStuctType;
Cảm ơn rất nhiều. Điều này đã cho tôi đủ hiểu biết để làm cho mã hoạt động. –