Есть ли способ поделиться определением enum между нативным (неуправляемым) C++ и (управляемым) C#?Можно ли делиться объявлением enum между C# и неуправляемым C++?
У меня есть следующее перечисление используется в совершенно неуправляемом коде:
enum MyEnum { myVal1, myVal2 };
Нашего приложение иногда использует управляемый компонент. Этот компонент C# получает значения элемента enum как ints через управляемую dll dll C++ (из родной dll). (Библиотека DLL Interop загружает только если C# компоненты нужны). В # компоненте C имеет дублированное определение перечислимое:
public enum MyEnum { myVal1, myVal2 };
Есть ли способ, чтобы устранить дублирование, не превращая родную библиотеку DLL C++ в библиотеку DLL удались?
Альтернативно #if! __ cplusplus public ... – user7116
Я только что проверил что-то подобное - но файл называется MyEnum.cs. Так что он компилирует C# без каких-либо специальных правил. В моем файле на C++ это работает: #include «MyEnum.cs» –
Удивительно, рад, что у вас это работает! – jjxtra