Я пытаюсь портировать файл MSRPC .idl в файл ONCRPC .x.Я видел несколько простых примеров файлов .x вокруг Google.Но я хочу найти эквивалент перечисления в .x.Вот пример кода idl, который я хочу портировать:
[ uuid(1c2g7d9b-6afb-16d3-81bd-x145x355b9ar),
version(1.0),
pointer_default(ref)
]
interface FileTm
{
typedef enum _DATA_SIZE
{
DataSize8,
DataSize16,
DataSize32,
DataSize64
} DATA_SIZE;
typedef DATA_SIZE *PDATA_SIZE;
const char *SERVNAME_PREFIX = "/.:/DATA_TM_"; //Server name is DATA_TM_HOSTNAME
short DataFindDevice([in] DATA_SIZE DeviceCode);
}
Вот что я пробовал:
program DataTm_PROG {
version DataTm_VER {
int DataTm(intdata) = 1;
} = 1;
} = 0x20000099;
enum _DATA_SIZE
{
DataSize8,
DataSize16,
DataSize32,
DataSize64
} DATA_SIZE;
typedef DATA_SIZE *PDATA_SIZE;
const char *SERVNAME_PREFIX = "/.:/DATA_TM_"; //Server name is DATA_TM_HOSTNAME
при запуске rpcgen filename.x, яполучить ошибки:
} DATA_SIZE;
^^^^^^^^^^^^^^^^^^
filename.x, line 22: expected ';'
const char *SERVNAME_PREFIX = "/.:/DATA_TM_"; //Server name is DATA_TM_HOSTNAME
^^^^^^^^^^
filename.x, line 62: expected 'identifier'
Я еще не пробовал короткую функцию.Я не уверен, что делать с [in] в .x файле.Я работаю с Linux (RHEL 7.5).Любая помощь приветствуется.