Does it have to be C++? Can't it be mixed-mode DLL in C++/CLI, which bridges your C++ with the WCF service?