Я создал структуру внутри dll под названием TestData, затем, после компиляции этой dll в формате .lib, я протестировал ее с помощью драйвера ядра, созданного на C. Это сработало нормально, но я хочу иметь возможность общаться и передайте эту структуру из моего драйвера C в мое настольное приложение C#. Таким образом, мне нужно изменить структуру только в одном месте, и изменения вступят в силу как в драйвере, так и в моем приложении C#. При этом я новичок в C#, и мне трудно заставить dll или lib (я пробовал в обеих версиях) работать правильно. Сначала я попытался добавить ссылку, но получил сообщение «Убедитесь, что файл доступен и что это допустимая сборка или компонент COM». Затем я наткнулся на это, что похоже, с той разницей, что оператор просил вызвать функцию, а я просто хотел получить доступ к структуре. Но в любом случае меня смущает ответ с самым высоким рейтингом, потому что он, похоже, не ссылается ни на что конкретное из dll.
Я знаю, что структуры можно создавать внутри C#, и нашел пример этого. сделано следующим образом...
Код: Выделить всё
[StructLayout(LayoutKind.Sequential)]
public struct EXAMPLE
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
public char[] ex1;
public ushort ex2;
}
Это выглядит управляемым, если добавить несколько дополнительных шагов, но было бы идеально, если бы я мог просто использовать dll (или, что более вероятно, библиотеку, чтобы ее можно было статически загружать).
Подробнее здесь:
https://stackoverflow.com/questions/768 ... of-c-sharp