self -registering ? Quoi donc qu'est ce ? - Programmation
Marsh Posté le 14-05-2001 à 15:35:35
Fais une recherche sur google (mondial) de :
Please ensure that the file is self-registering and verify that the self-registration process does not fail
et tu trouveras des renseignements
Marsh Posté le 14-05-2001 à 15:38:25
Une dll est self registering qd il s'agit d'une dll COM. Ca signifie qu'elle contient le code nécessaire pour qu'elle s'enregistre dans la base de registre. (les objets COM ont besoin d'etre enregistrer dans la base de registre).
Dans windows, il y a un outil pour enregistrer les dll : regsvr32.exe.
ex :
- pour enregistrer : regsvr32 toto.dll
- pour dé-enregistrer : regsvr32 /u toto.dll
- taper regsvr32 pour plus d'option.
Marsh Posté le 14-05-2001 à 16:32:29
Je vois que tu essaye d'enregistrer une dll avec install shield.
Mais ta dll, est elle compatible COM ?
Si oui, ca doit marcher.
Si non, c'est inutile de l'enregistrer (de tout facon ca marchera pas
...)
Marsh Posté le 14-05-2001 à 17:13:01
Qu'appelles tu exactement compatible COM ?
j'ai créé une DLL dans VB6 (Type DLL activeX).
Celle ci contient des classes qui font des accès à une base de données Access, sinon le code n'a rien de vraiment spécial.
Marsh Posté le 14-05-2001 à 17:21:09
Si ta dll contient un ActiveX, elle est COM.
(ActiveX est une application de COM, Component Object Model).
Donc il faut l'enregistrer.
Marsh Posté le 14-05-2001 à 17:47:40
Le problème est:
Est ce que installshield enregistre automatiquement les dll ou non.
Si il ne le fait pas, comment faire pour enregistrer ces dll par programme (pour ne pas à avoir à demander au client de l'enregistrer manuellement) ?
Marsh Posté le 15-05-2001 à 11:36:24
Il faut que ta DLL exporte certaines fonctions.
Je me souviens plus lesquels (une en particulier) mais ca se retrouve (dans le MSDN online par exemple) je sais qu'il y a le mot register dans la fonction à exporter...
Marsh Posté le 15-05-2001 à 12:36:20
Pour enregistrer une dll COM :
STDAPI __export DllRegisterServer(void)
STDAPI __export DllUnregisterServer(void)
Maintenant c'est bizarre, VC++ ou C++ Builder créent le code de ces fonctions automatiquement quand on crée un projet "ActiveX" donc je pense que VB le fait aussi. Tu es sûr de n'avoir pas raté une option ?
Marsh Posté le 15-05-2001 à 13:34:55
Oui, InstallShield enregistre les dll.
Il faut déclarer le "file group" en tant que "self registered".
(donc dans ce "file group", on ne met que des dll ou ocx enregistrables).
Marsh Posté le 15-05-2001 à 17:10:19
seblamb> Je n'ai pas trouvé de fonction ou propriété explicite qui indique que la dll doit être self-register
bat> J'utilise Installshield express, je ne doit donc pas avoir la même version que toi (professionnal ?) car je n'ai pas de possibilité de déclarer le file en tant que self registered.
Par contre dans les properties avancées de mes dll il y a une case "registration type" avec choix:
- None
- Extract COM information
- self-registration
Je pense que ce doit être ça (self-registration), je vais essayer.
Marsh Posté le 14-05-2001 à 15:23:28
Qu'est ce que ça veut dire qu'une dll ou fonction ou autre est Self-registering ?
Si besoin est ,voila mon erreur qui apparait dans une procédure d'installation avec installshield :
The build was unable to extract COM information from the file "toto.dll" in feature "ProjetToto". Please ensure that the file is self-registering and verify that the self-registration process does not fail.