I. Est-il possible de développer des services Web en C++ ?▲
Une nouvelle API est disponible avec Windows, WWSAPI (Windows Web Service API) qui permet aux développeurs natifs (C/C++) d'implémenter :
- des clients ou des services Web sans adhérence avec la plate-forme .NET ;
- interopérer avec les standards des services Web, WCF, Web Services ASP.NET et même d'autres services qui tournent sur des systèmes d'exploitation autres que Windows.
Pour créer un client à un service Web, dans un premier temps, il faut obtenir ses métadonnées à l'aide de l'outil svcutil.exe.
svcutil /t:metadata <point d'entrée du service web>
Des fichiers wsdl et wsd contenant les métadonnées du service sont créés.
Ensuite il faut créer le proxy client à l'aide de l'outil wsutil.exe
wsutil.exe *.wsdl *.xsd
Sont alors créés, des fichiers d'entête (.H) contenant la structure des messages à envoyer et du code source (.C) contenant les appels de méthodes du service. Ces deux derniers fichiers seront à inclure dans votre projet.
Par exemple, pour initialiser un proxy web en C++ avec WWSAPI.
WS_ERROR* _wsError;
WS_HEAP* _wsHeap;
WS_SERVICE_PROXY* _wsServiceProxy;
HRESULT hr;
hr=WsCreateError (NULL,0,&_wsError);
if (FAILED(hr)) return hr;
hr=WsCreateHeap (SIZE_T_MAX,0,NULL,0,&_wsHeap,_wsError);
if (FAILED(hr))
{
LibererRessourcesServiceWeb();
return hr;
}
WS_HTTP_BINDING_TEMPLATE templateValue={};
hr=LiveSearchPortBinding_CreateServiceProxy (
&templateValue,
NULL,0,
&_wsServiceProxy,
_wsError);
if (FAILED(hr))
{
LibererRessourcesServiceWeb();
return hr;
}
WS_ENDPOINT_ADDRESS address={};
WS_STRING Url=WS_STRING_VALUE(L"http://api.search.live.net:80/soap.asmx");
address.url=Url;
hr=WsOpenServiceProxy (_wsServiceProxy ,&address,NULL,_wsError);
void LibererRessourcesServiceWeb ()
{
if (_wsError!=NULL)
WsFreeError (_wsError);
if (_wsHeap!=NULL)
WsFreeHeap (_wsHeap);
if (_wsServiceProxy !=NULL)
{
WsFreeServiceProxy (_wsServiceProxy);
}
}
Pour plus d'infos :
- Pour en savoir plus sur WWSAPI : http://msdn.microsoft.com/en-us/library/dd323309(v=VS.85).aspx
- Pour consommer les services de traduction et de synthèse vocale de Microsoft translator avec WWSAPI, suivez le guide : http://msdn.microsoft.com/fr-fr/windows/msdn.microsoft.translator.vcplus.aspx
- MSDN : http://msdn.microsoft.com/fr-fr/windows/default.aspx
- Le coach Windows 7 : http://msdn.microsoft.com/fr-fr/windows/msdn.coach.windows7
- Kit de développement pour Windows 7 : http://msdn.microsoft.com/fr-fr/windows/gg398052.aspx