Bonjour a tous,
Bon je vous explique mon problème. Déjà je m'y connais très peu en Delphi et mes affinités avec ce langage sont des plus minimes.
Cependant, je dois dans le cadre de mon stage réutiliser tout ou partie d'une application écrite en Delphi 5 (et qui apparemment compile aussi sous Delphi 7) ainsi que tout ou partie d'une application écrite en C# et fonctionnant sur plateforme .NET.
J'ai donc eu l'idée suivante: développer mon application en C#/.NET, et compiler la vieille application en Delphi 8/.NET de facon a pouvoir reutiliser des composants en Intermediate Language (.NET).
MAIS (car il y a un mais ), j'éprouve pas mal de difficultés a compiler la vieille appli. Déjà, elle fait appel au composant ScktComp, qui etait present dans les vieilles versions de delphi, mais plus maintenant (je crois que la raison principale est que ce composant est déjà noté come "deprecated" pour Delphi 7). Ce composant permet de gérer de facon transparente les sockets en multithreadé.
J'ai envisagé 2 solutions:
1) Récupérer les sources du vieux composant et essayer de le faire compiler, de facon a ensuite faire compiler la vieille appli en Delphi.
2) Faire un "wrapper" aux classes System.Net.Sockets.Socket et jesaisplukoi.Thread du framework .NET de facon a avoir le meme comportement.
Le 2) me paraissant un peu ambitieux, j'ai essayé le 1) en me disant que peut etre, ce ne serait pas si dur que ca.
J'ai donc du changer WinSock.pas pour que ca compile (parfois de facon assez gruik) et je suis actuellement en train de modifier ScktComp.pas ou il y a de multiples erreurs, dues notamment a l'utilisation massive de pointeurs (notamment PChar).
J'aimerai donc avoir vos opinions de programmeurs Delphi experimentés. Les solutions que j'envisage vous paraissent t'elles faisables? Dois-je tout lacher et compiler le truc de facon a en extraire des dll Win32 de base?
Par ailleurs, je suis en ce moment bloqué depuis un certain temps sur un "Invalid typecast" de PChar en string. Un string(PChar) ne semble pas fonctionner. J'ai essayé pas mal de choses, notamment passer par un array of char, tenter d'utiliser le constructeur System.String(^Char), etc... Rien n'y fait. Je suis sur que c'est un pb débile et commun, donc j'en profite pour le poster ici.
Merci d'avance de vos conseils, car j'avoue que je suis un peu perdu, venant plutot du monde Unix et n'etant pas habitué aux technologies ou il faut payer pour obtenir le moindre support et ou google n'est pas vraiment mon ami
flo