Bonjour,
J’ai une application (appelons là MonMoteur) qui contient une vingtaine d’interfaces définies comme Objet Automation (les implémentations de mes interfaces sont du type
TMonInterface = class(TAutoObject,IMonInterface)
). Cette application a été développée en Delphi 4. L’idée de base était de pouvoir appeler cette application à partir de n’importe quelle application. Actuellement, une application utilise MonMoteur.
Suite à un problème de droit avec des utilisateurs XP non admin de leur poste, MonMoteur a été passé en dll au lieu d’un exe. Pour cela dans MonMoteur.dpr, la directive « program » a été remplacée par « library » et la directive export a été ajoutée avec les méthodes DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer. Suite à cette modification, nous n’avons rencontré aucun problème pour l’application qui utilise MonMoteur
Actuellement, je développe une seconde application qui appelle MonMoteur de la même manière que la première pour faire le même type de traitement. La différence technique entre l’application actuelle et celle que je développe est que cette dernière est développée en tant que COM Server, car elle est appelée à partir d’une autre.
Durant les premiers tests, je me suis rendu compte que les temps de traitement de MonMoteur étaient jusqu’à 4 fois plus longs quand je l’appelle avec ma nouvelle application que quand je l’appelle avec l’ancienne. Mais si je repasse MonMoteur en application, et non pas en dll comme actuellement, j’ai des temps de traitement normaux.
J’espère que mes explications sont claires, c’est pas facile à expliquer !
Pouvez-vous m’aider ?
Partager