Я создал веб-проект на ASP.NET CORE
и к нему собрал и подключил библиотеку, написанную на C
.
Чтобы использовать функции из библиотеки, необходимо определить в C#
структуры данных. Со всеми типами данных разобрался остался вопрос с передачей двух типов, которые не знаю как интерпретировать.
#ifdef WIN32
#define thread_t HANDLE
#define lock_t CRITICAL_SECTION
#define initlock(f) InitializeCriticalSection(f)
#define lock(f) EnterCriticalSection(f)
#define unlock(f) LeaveCriticalSection(f)
#define FILEPATHSEP '\\'
#else
#define thread_t pthread_t
#define lock_t pthread_mutex_t
#define initlock(f) pthread_mutex_init(f,NULL)
#define lock(f) pthread_mutex_lock(f)
#define unlock(f) pthread_mutex_unlock(f)
#define FILEPATHSEP '/'
#endif
C# использует объект lock
для блокировки потока и объект Thread
для управления потоками, в C
же это CRITICAL_SECTION
и WINAPI thread
.
Как мне передать эти объекты в C-DLL или отправить CRITICAL_SECTION
и HANDLE
из C#?
HANDLE
= *void
, в C# - IntPtr
.
CRITICAL_SECTION
- структура:
typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
typedef struct _RTL_CRITICAL_SECTION {
PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
LONG LockCount;
LONG RecursionCount;
HANDLE OwningThread;
HANDLE LockSemaphore;
ULONG_PTR SpinCount;
} RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION;
аналог в C#:
[StructLayout(LayoutKind.Sequential)]
public struct CRITICAL_SECTION {
public IntPtr DebugInfo;
public int LockCount;
public int RecursionCount;
public IntPtr OwningThread;
public IntPtr LockSemaphore;
public UIntPtr SpinCount;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть две формы, на одной отображаются данные в таблице на другой они добавляютсяНадо что бы после нажатия сохранить на второй форме, внесенные...
Согласно моему познанию ASPNET Core и если сильно не углубляться в детали, то на сегодняшний день обработка HTTP-запросов на одноядерном процессоре...
У меня есть generic метод преобразующий IQueryable<T> и возвращающий IOrderedQuerable<T> при помощи Linq-to-Entities
Пытаюсь как тут добавить ReactJS к проекту, но при добавлении этой строки: