Диаграмма на этой странице может помочь вам понять следующее объяснение.То, что вы сделали, создали вторую клиентскую заглушку с именем «Output2» , но , которую новая клиентская заглушка вызывает ту же серверную заглушку, что и «Output» (потому что она передает те же значения в параметры один и два NdrClientCall2) поэтому серверная заглушка в итоге вызывает ту же функцию серверного приложения.
Если ваше приложение RPC разумно сконструировано, вам не следует редактировать файлы, содержащие вызовы NdrClientCall2.Клиентские стаб-файлы обычно генерируются компилятором MIDL.Вам нужно найти файл IDL вашего приложения (и, возможно, связанный файл ACF) и добавить определение для Output2 в ваш IDL.Затем, когда вы перестраиваете свой клиентский проект, компилятор MIDL должен скомпилировать ваш недавно измененный файл IDL (и файл ACF, если необходимо) и сгенерировать новую заглушку клиента.
Аналогично, когда вы компилируете проект сервера (используятот же IDL) компилятор MIDL будет генерировать новые файлы-заглушки сервера.В зависимости от того, как написано ваше серверное приложение, вам, возможно, придется отредактировать файл-заглушку сервера, чтобы подключить заглушку к фактической реализации функции.
Некоторые статьи здесь могут быть полезныно если вы не понимаете, как работает RPC, вы можете откусывать больше, чем можете прожевать.