Kann es sein, dass wir ein wenig aneinander vorbei reden?
Was ich meine:
Wenn eine DLL unter einem neuen Namen neu erstellt wird, und in dieser DLL GetModuleHandle (mehrmals) verwendet wurde, und dann mit dieser DLL ein neues Programm entwickelt wird, die Verwendung von GetModuleHandle aber vergessen wurde, also auch der entsprechende Code nicht geändert wurde (dem Compiler ist das ja egal), dann lässt sich die DLL trotzdem laden (und von diesem Ausgangspunkt bin ich ausgegangen, du aber anscheinend nicht...). Das kann unter Umständen zu schwer auffindbaren Fehlern führen. Deshalb ist es doch von Vorteil, die Instanz gleich global zu speichern. Globale Variablen sind zwar auch nicht gerade ungefährlich, aber in diesem Fall sollte daraus kein Nachteil entstehen und globale Variablen wurden schließlich nicht erfunden um generell gemieden zu werden. Außerdem ist das auch (wie oben bereits gesagt) deutlich leichter, falls die Instanz oft verwendet wird.
(Hoffe du hat jetzt wenigstens meinen Ausgangspunkt verstanden
)
Wahrscheinlich hast du meine Aussage "Wenn sich der Name der DLL ändert" so gedeutet, das dieser nachträglich einfach verändert wird... war auch schlecht ausgedrückt.
Aber wie gesagt, was man verwendet ist eine Sache von persönlichen Vorlieben und dem speziellen Anwendungsfall, weshalb die Diskussion hier nicht weiterhilft. Der Fragesteller hat die beiden Möglichkeiten erfahren und kann sich nun selbst aussuchen welche er verwenden möchte; anhand des konkreten Falles in dem er es verwendet und anhand seiner persönlichen Vorlieben. Eine weitere Diskussion hier, bei der wir vermutlich nur noch mehr aneinander vorbeireden werden, und bei der wir wohl kaum zu einer "besten" Lösung kommen werden hilft weder ihm noch uns weiter deshalb lassen wir es besser.