|
DllImport из библиотке "С" с указателями на ф-ции.
|
|||
---|---|---|---|
#18+
Добрый день! Помогите пожалуйста, Поставили задачу, импортировать DLL (на "С") со структорой в которой имеется указать на ф-цию. Пример: С#: public struct plugin_interface_test { public delegate void foo(int x, int y ); } class Program { [DllImport("TestPluginDLL.dll", CallingConvention = CallingConvention.Cdecl)] public static extern int load_plugin_test(ref plugin_interface_test s); static void Main(string[] args) { var plugin = new plugin_interface_test(); int res = load_plugin_test(ref plugin); Console.ReadKey(); } } С: typedef void(*foo_t) (int x, int y); typedef struct { foo_t foo; } plugin_interface_test; __declspec(dllexport) int load_plugin_test(plugin_interface_test *interface) { int x = 10; int y = 20; interface->foo(x, y); -> тут нужно вызвать ф-ию foo(x, y) в С# return 0; } C импортом структуры разобрался, а вот с передечей ф-ций что то не пойму. Заранее благодарю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 12:10 |
|
DllImport из библиотке "С" с указателями на ф-ции.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.04.2015, 12:15 |
|
DllImport из библиотке "С" с указателями на ф-ции.
|
|||
---|---|---|---|
#18+
Ровно такую задачу решать не доводилось, но раз оператор ->, то нужен указатель на функцию. Указатель, это IntPtr, его можно в структуру и поместить. А дальше получить указатель на нужную функцию и записать в структуру. Обычно такое срабатывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.04.2015, 15:30 |
|
|
start [/forum/moderation_log.php?user_name=Beck]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
103ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 441ms |
total: | 662ms |
0 / 0 |