Я занимаюсь разработкой приложения C# (. NET Core), и мне нужно вызвать функцию C из внешней библиотеки.
Но у меня возникают проблемы при маршалинге thread_t
и lock_t
.
Это код C:
EXPORT void strsvrinit (strsvr_t *svr, int nout);
typedef struct { /* stream server type */
int state; /* server state (0:stop,1:running) */
...
thread_t thread; /* server thread */
lock_t lock; /* lock flag */
} strsvr_t;
#ifdef WIN32
#define thread_t HANDLE
#define lock_t CRITICAL_SECTION
#else
#define thread_t pthread_t
#define lock_t pthread_mutex_t
#endif
Как реализовать маршалинг для thread_t
(HANDLE
) и lock_t
(CRITICAL_SECTION
) )