1
17
您可以使用单个.cs文件并在两个项目之间共享它。
这是一个.cs文件示例:
如果你想在一个文件中使用多个枚举,你可以这样做(尽管你必须暂时定义公共对于C/C++来说是无用的):
|
2
4
谢谢分享! 我花了点时间,找到了一种方法,可以有多个枚举和常量声明,而不需要大量的额外行:)
记住将文件命名为*.cs |
3
3
您可以将C库公开给COM,然后将类型库导入到非托管代码中-这样,您就可以使用非托管库中C库中定义的枚举。 |
4
0
非托管C++和C语言存在于两个不同的世界中,所以不存在使用相同枚举的方法,而不需要将C++ DLL更改为托管EnUM。 即使这样,您可能需要在托管C++ DLL中重复。 C++EnUM很像一个常数列表,而C.Y.EnUM继承了EnUM类,因此提供了相当多的“技巧”。如你所见,他们是 非常 不同的。 如果本地C++DLL是本地的还是托管的,那么我就把它变成托管的,并在托管C++层中封装本机调用。 这样你就可以在C++的DLL中实现EnUM复制,也可以同时删除所有的互操作: |
5
0
我以前也遇到过同样的问题,并用预处理器定义解决了它。 在非托管代码中,在也可以由托管包装器包含的头中,将枚举项放入define。 然后,在托管和非托管枚举定义中,对这两种用法使用相同的定义。 托管世界和非托管世界之间的枚举移动看起来有点讨厌(基本上需要强制转换),但是对于非托管世界中的调用者来说,它看起来和感觉都很好。 祝你好运, |