Я - начинающий в RPC, пишу распределённое приложение и столкнулся с проблемой. Если в .idl файле я даля объявления одной из ф-ий имею:
ddr_t dDaemon_ServiceGetData ([out] int *size, [out, size_is(*size)] char *image, [out] int *lSize, [out, size_is (*lSize)] char *logImage);
То MIDL говорит об ошибке №2123
<цитата>
.\dDaemon.idl(78) : error MIDL2123 : expression used for a size attribute must not derive from an [out] only parameter : [ Parameter 'image' of Procedure 'dDaemon_ServiceGetData' ( Interface 'dDaemon' ) ]
.\dDaemon.idl(78) : error MIDL2123 : expression used for a size attribute must not derive from an [out] only parameter : [ Parameter 'logImage' of Procedure 'dDaemon_ServiceGetData' ( Interface 'dDaemon' ) ]
</цитата>
Когда же искуственно заставляю переменные-размеры массивов быть не только [out] :
ddr_t dDaemon_ServiceGetData ([in, out] int *size, [out, size_is(*size)] char *image, [in, out] int *lSize, [out, size_is (*lSize)] char *logImage);
то все ОК. Почему? Я хочу только получить какие-то данные от сервера. Почему я должен что-то передавать?