J'ai "trouvé" une solution, nommée Delphi 7.
Importation de la biblio, et hop, j'ai tout ce qu'il me faut !
Mais ceci n'explique pas le problème sous 2005...
Version imprimable
J'ai "trouvé" une solution, nommée Delphi 7.
Importation de la biblio, et hop, j'ai tout ce qu'il me faut !
Mais ceci n'explique pas le problème sous 2005...
Salut,
L'outil tlbimp.exe a été modifié il me semble, car effectivement j'ai le même soucis sous bds2006. Il faut utiliser les coclasses. Le code WMI manquant est désormais accessible en interface et plus comme des objets encapsulant une interface. (à moins que la tlb ait été modifié faute de temps je n'ai pas vérifier ce point)Citation:
Envoyé par Cthulhu_RLyeh
Tu changes, dans la déclaration de varaible, le nom du type de ta variable posant pb, tu appel la coclasse.create (méthode de classe), tu supprimes, en ce qui concerne les exemples du tuto, l'appel à Free puisque le compilo gére la libération.
Il te faudra juste faire attention au pb de portée si tu manipules des interfaces en tant que globales.
Si tu fais un diff de l'unité D7 avec celle de DBS2005 tu y verras plus clair je pense.
Bon dev !
Merci pour la réponse. En ce qui me concerne, vu mon niveau, je vais (tenter) de gérer sous D7 !!! Parce que s'il faut rajoutzer en plus des coclasses...
Rien de bien sorcier :
Le code de la coclasse :Code:
1
2
3
4
5
6
7
8
9 var WMILocator: ISWbemLocator; begin WMILocator:= CoSWbemLocator.Create; Result := PropertyReturnValue.Value; //plus de d'appel à Free; end;
Donc rien à voir avec un quelconque niveau, juste qq prérequis et un peu de réflexion :lol:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 // *********************************************************************// // La classe CoSWbemLocator fournit une méthode Create et CreateRemote pour // créer des instances de l'interface par défaut ISWbemLocator exposée // par la CoClasse SWbemLocator. Les fonctions sont destinées à être utilisées par // les clients désirant automatiser les objets CoClasse exposés par // le serveur de cette bibliothèque de types. // *********************************************************************// CoSWbemLocator = class class function Create: ISWbemLocator; class function CreateRemote(const MachineName: string): ISWbemLocator; end; {-----------------------------------------------------------------------} class function CoSWbemLocator.Create: ISWbemLocator; begin Result := CreateComObject(CLASS_SWbemLocator) as ISWbemLocator; end; class function CoSWbemLocator.CreateRemote(const MachineName: string): ISWbemLocator; begin Result := CreateRemoteComObject(MachineName, CLASS_SWbemLocator) as ISWbemLocator; end;
Bon dev.