Avertissement: Je ne suis pas un développeur C++, je ne peux que faire des choses de base. (Je comprends les pointeurs, juste ma connaissance est si rouillée, je n'ai pas touché c/C++ depuis environ 20 ans :))C++ simple enregistrement conditionnel
La configuration: J'ai un addin Outlook, écrit en C# /. Net 1.1. Il utilise un c++ shim pour charger.
Habituellement, cela fonctionne assez bien, et je l'utilise dans mon C# code nlog à des fins de journalisation. Mais parfois, l'addin ne se charge pas, c'est-à-dire il ne frappe pas du tout le code managé pour que je puisse étudier le problème à partir des fichiers journaux. Donc, j'ai besoin d'accrocher une connexion de base dans le shim C++ - en écrivant simplement dans un fichier. Je dois le rendre aussi simple que possible pour que nos utilisateurs puissent l'activer. En fait, je préférerais ne pas l'expédier par défaut.
Je pensais à quelque chose, qui va vérifier si une DLL spécifique est présente (la DLL de journalisation), et si oui, de l'utiliser. Sinon, il ne se connectera à rien. De cette façon, quand j'ai un utilisateur avec de tels problèmes, je peux lui envoyer seulement le dll de notation, l'utilisateur l'enregistrera dans le répertoire d'exécution, et j'aurai le dossier.
Je suppose que cela doit être fait avec une forme de solution d'usine, qui renvoie soit un enregistreur factice, ou si la DLL est trouvée, une vraie.
Une autre option consisterait à créer un enregistreur simple et à reconstruire la cale avec ou sans l'utiliser, en fonction des directives. Ce n'est pas l'approche souhaitable, car le shim doit être signé, et je dois demander à l'utilisateur de faire une copie de sauvegarde du "vrai", puis de le restaurer une fois terminé, etc., au lieu de sauvegarder et de supprimer un dll .
J'apprécierais n'importe quelle bonne suggestion comment l'approcher, avec des liens ou un code d'exemple comment aller après ceci.
Vive
Oui, log4cplus est bon aussi: http://log4cplus.sourceforge.net/ – neuro