我想在 idl 文件中编写一个枚举:
module Media
{
enum eSpeed
{
int speed1 = 2000,
int speed2 = 4000,
int speed3 = 8000
};
};
Run Code Online (Sandbox Code Playgroud)
但 CORBA 不允许在枚举情况下进行任何赋值。如何解决这个问题?
无法为 IDL 枚举指定值。通常,我所做的是将 IDL 枚举重新映射到我自己用 C++ 创建的枚举(可能使用查找表),该枚举在我的应用程序代码中使用之前具有正确的值。换句话说,例如,服务器实现可以在 CORBA 调用中接收 IDL 枚举,然后通过表查找将其映射到具有定义值的内部 C++ 枚举,然后将其传递给应用程序代码。
如果您不想这样做,您可以在 IDL 中使用常量而不是枚举:
const long speed1 = 2000;
const long speed2 = 4000;
Run Code Online (Sandbox Code Playgroud)
然后,您将在 IDL 中传递long
而不是作为参数传递。eSpeed
归档时间: |
|
查看次数: |
2644 次 |
最近记录: |