Для меня
font-size: 0;
line-height: 0;
на упаковке контейнер сделал свое дело.
Вы можете использовать один файл .cs и совместно использовать его в обоих проектах. #include
в C ++ для файла .cs не должно вызывать проблем.
Это будет пример файла .cs:
#if !__LINE__
namespace MyNamespace
{
public
#endif
// shared enum for both C, C++ and C#
enum MyEnum { myVal1, myVal2 };
#if !__LINE__
}
#endif
Если вы хотите, чтобы несколько перечислений в одном файле, вы можете сделать это (хотя вы должны временно определить public как ничего для C / C ++):
#if __LINE__
#define public
#else
namespace MyNamespace
{
#endif
public enum MyEnum { MyEnumValue1, MyEnumValue2 };
public enum MyEnum2 { MyEnum2Value1, MyEnum2Value2 };
public enum MyEnum3 { MyEnum3Value1, MyEnum3Value2 };
#if __LINE__
#undef public
#else
}
#endif
Вы можете открыть библиотеку C # для COM, а затем импортировать библиотеку типов в неуправляемый код - таким образом вы сможете использовать перечисление, определенное в библиотеке C #, в неуправляемая библиотека.
Неуправляемые C ++ и C # живут в двух разных мирах, так что нет невозможно использовать одно и то же перечисление без преобразования библиотеки DLL C ++ в управляемую.
И даже тогда вам, вероятно, понадобится дублирование в управляемой DLL C ++.
Перечисление C ++ во многом похоже на список констант, тогда как перечисление C # наследует класс Enum и, таким образом, предоставляет немало "уловок". Как видите, они очень разные.
Если не имеет значения, является ли собственная библиотека C ++ собственной или управляемой, я бы превратил ее в управляемую и обернул бы родную вызовы внутри управляемого уровня C ++.
Таким образом, вы можете дублировать перечисление внутри библиотеки DLL C ++,
У меня была такая же проблема в прошлом, и я решил ее с помощью определений препроцессора.
В неуправляемом коде внутри заголовка, который также может быть включен управляемой оболочкой, поместите свой перечисление элементов в #define.
Затем в определениях управляемого и неуправляемого перечисления используйте один и тот же #define для обоих вариантов использования.
Перемещение перечислений между управляемым и неуправляемым миром выглядит немного неприятным (в основном это приведение требуется), но для вызывающего абонента в неуправляемом мире все будет хорошо.
Удачи,