Apparemment, tu utilises de la mémoire partagée avec ton CreateOrLinkSharedTable : je n'en vois pas l'intérêt, mais passons
Bon, alors je vois que tu fais un pipe nommé P2CALCULUS, et que tu es dans le client.
Commence par enlever les options share, car tu ne fais pas de la partage mémoire mais un pipe (ça marche peut-être avec, mais comme ça ne sert à rien, autant l'enlever).
Je viens de jeter un coup d'oeil sur la doc.
http://msdn2.microsoft.com/en-us/library/aa365789(VS.85).aspx
Quand tu passes dans ton CreateFile, qui te dis que le pipe a déjà été créé côté serveur ? rien, et il se peut qu'il ne soit pas encore créé, alors il faut faire une boucle avec une attente en utilisant WaitNamedPipe.
Bon, tu as peut-être lancé le serveur bien avant, mais on ne sait jamais
Ensuite, il faut visiblement indiquer le mode d'utilisation du pipe avec SetNamedPipeHandleState, que tu n'as visiblement pas utilisé.
Enfin, es-tu sûr que le problème vient du client et pas du serveur ?