2010-06-08 6 views
2

10 ans se sont écoulés depuis que j'ai utilisé COM/OLE, et j'en oublie 90% d'entre eux. Maintenant, nous devons faire un objet COM pour accéder à certaines données de PHP/Python (ceci est une chose spécifique, le php ODBC n'accède pas aux paramètres de sortie d'une sortie proc stockée comme DataBase), et mon idée, je réalise un objet minimal avec une méthode, et PHP/Python peut appeler ceci pour obtenir la sortie ...Delphi - Exemple de démarrage COM/OLE nécessaire

procedure ExecSQL(Config, IP, Port, DBName, SQL, IDFieldName : variant) : output 
output is [IDValue, ErrorMsg, HResult] 

S'il vous plaît aidez-moi un très petit exemple, comment commencer? J'ai seulement besoin de cela, mais je suis confus par de nombreux ActiveX/COM dans la palette. Qu'est-ce que je dois utiliser pour créer une simple DLL COM, et comment enregistrer mon objet COM avec cette DLL?

Merci: dd

+0

Il serait utile si vous nous faites savoir quelle version de Delphi que vous utilisez – Stephane

+0

Désolé ... C'est Delphi 6 Prof – durumdara

Répondre

6
  1. Sélectionnez Fichier \ New \ Library ActiveX - cela crée projet DLL ActiveX
  2. Sélectionnez Fichier \ Nouveau \ Automation Object - crée la bibliothèque de types et l'implémentation
  3. À l'aide de l'éditeur de bibliothèque de types, ajoutez des méthodes/propriétés à l'interface
  4. Ecrire le code de mise en œuvre
  5. Sélectionnez Exécuter \ ActiveX registre serveur - le serveur enregistre ce COM DLL
+0

Je voudrais utiliser Regsvr32 pour enregistrer le serveur COM, qui fonctionne sur chaque machine. "regsvr32.exe" chemin d'accès et nom de fichier de mon serveur "" (ajouter/u désinstaller). –

+0

regsvr32 fait exactement la même chose que l'EDI: charge la DLL et appelle sa fonction DllRegisterServer exportée. Sur Vista et plus haut, cependant, vous devrez peut-être exécuter ceci à partir d'un processus élevé que l'IDE n'est probablement pas. –

+0

Je sais, mais pour installer le serveur COM avec l'IDE, vous devez avoir l'IDE installé. C'est pourquoi je recommande regsvr32, car je ne pense pas que la machine de développement = webserver. –

Questions connexes