Обычно, когда вы используете wcf в клиентском проекте, в вашем конфигурационном файле есть записи, которые описывают привязку, которая будет использоваться, а также конечную точку, где расположен сервис:
Я предполагаю, что ваш класс FeedClient является классом, который наследуется от ClientBase (IPhiFeed). ClientBase фактически определяет множество конструкторов, если вы вызовете конструктор без параметров, он попытается найти клиентскую конечную точку «по умолчанию» в вашем файле конфигурации; и в этом случае нет ни одного, потому что у единственной конечной точки, определенной в конфигурации, есть имя. Чтобы исправить это, вы можете сделать одно из двух: вы можете вызвать конструктор ClientBase, который принимает строковый параметр с именем конечной точки: ClientBase<IPhiFeed>("MyService")
или вы можете изменить файл конфигурации так, чтобы конечная точка не имела имени:
редактирует:
Код в вашем вопросе выглядит как код C #. Класс FeedClient наследуется от ClientBase? Если да и код C #, который вызывает его, работает, то что такое код C ++, который не работает? В целом, в коде C ++ вы можете иметь как управляемый, так и неуправляемый код; это неуправляемый код может вызывать управляемый код. В вашем неуправляемом проекте вы должны сделать следующее: перейдите на страницу свойств проекта, нажмите Конфигурация Свойства Общие; на вкладке «Общие» в разделе «Параметры проекта по умолчанию» вторым из нижних параметров должна быть «Поддержка общеязыковой среды выполнения», убедитесь, что для нее задана поддержка общеязыковой среды выполнения (/ clr). При необходимости добавьте проект, содержащий класс FeedClient, в качестве ссылки на неуправляемый проект. Тогда вы сможете создать экземпляр класса FeedClient непосредственно в неуправляемом коде:
MyNamespace::FeedClient wcfClient;
wcfClient.SomeMethod() // Add parameters as appropriate...