Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2477 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Portage d'une vieille appli delphi + invalid typecast de string(PChar)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Portage d'une vieille appli delphi + invalid typecast de string(PChar)

n°983545
_flo_
Posté le 16-02-2005 à 14:36:55  profilanswer
 

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

mood
Publicité
Posté le 16-02-2005 à 14:36:55  profilanswer
 

n°983732
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-02-2005 à 16:57:58  profilanswer
 

Je choisirais la solution 3 : tenter d'adapter le soft pour utiliser un des compo Indy (la connexion TCP ou UDP) qui doit s'utiliser un peu de la même manière que le socket Delphi il me semble. L'avantage étant que Indy est fourni avec Delphi 8 il me semble.
Pour passer un PChar dans une chaîne, normalement une simple assignation suffit. Mais en .NET ça change peut-être...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°983744
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-02-2005 à 17:02:33  profilanswer
 

Après vérification dans Delphi 9, je ne vois pas Indy présent lorsqu'on crée un projet .NET
Je ne sais pas si c'est facile à rajouter : http://www.indyproject.org/download/DotNet.iwp
Sinon à choisir entre le point 1 et 2 de ton premier post, je ne suis pas sûr que le 1 soit plus simple. Un compo utilisant des pointeurs et des appels Win32 c'est probablement pas si simple à passer en .NET


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°984685
_flo_
Posté le 17-02-2005 à 11:22:22  profilanswer
 

ok, merci pour tes conseils, je vais regarder du coté de Indy s'il y a un composant qui permet de gérer les connexions en multithreadé. ce serait bien pratique ...
 
et effectivement, convertir l'appli en .NET me parait de plus en plus chaud, meme en utilisant du "unsafe" a toutes les sauces. donc de toutes facons, meme si ca marche, ce sera pas "propre".
 
pour le PChar, effectivement dans le code de base, il y avait une simple affectation, mais a la compile ca m'a envoyé chier (incompatible types, ou un truc dans le genre ...)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Portage d'une vieille appli delphi + invalid typecast de string(PChar)

 

Sujets relatifs
Générer programme d'install d'une appli Java/jspmysql_real_escape_string non reconnue ?
[résolu] Portage Windows Linux: apparition de warningsConversion String utf8
[Delphi 7] : demande d'information sur l'objetIncrémenter un string
Utilisaton de String.replaceAllCreer un .exe pour lancer une appli java (pas la compiler, hein) ?
Programme en delphi utilisant unicode et windows 98 SEFonctionnement prgm delphi .net sur poste client ?
Plus de sujets relatifs à : Portage d'une vieille appli delphi + invalid typecast de string(PChar)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR