Sowas geht nicht, liegt aber am Betriebssystem.
Naja, das ist aber nur die halbe Wahrheit
dll's werden bei windows standardmaessig (Ohne Pfadangabe bei loadlibrary) an folgenden Stellen gesucht:
- "Startverzeichniss" des Prozesses, also das woraus die exe ausgerufen wuerde
- Alles was im Suchpfad steht (PATH Enviroment)
- Systemverzeichnisse
Das bloede iss nur, das man mit Eintraegen in der Registry Punkt 2 global unterbinden kann. Macht aber kaum einer !!!
Das 2.te Bloede ist ... Du kannst die Path Variable in deinem Prozess modifizieren, das ist kein Problem. Aber zum Laden der qt libs muesstest du das vorm Anziehen selbiger in den Importlibs machen. Und das ist der Haken ... die main wird erst nach den initialisierungscode der Bibs ausgefuehrt, wenn die zugelinkt werden.
Es gibt möglichkeiten das hinzubekommen, aber da greift man zu tief in compiler / linker probleme etc ein als dass sich das lohnt.
es gibt aber einfachere "Tricks". ne simple Starter-exe die die Umgebung korrekt setzt, und dann ueber QProcess die eigentliche Qt App laed ... z.B.
mit statisch gebunden QT-Libs machst du dein Programm ziemlich robust gegen Qt Versionsprobleme etc. Auf der anderen Seite untergraebst Du das dll Prinzip von M$ ...
QT dlls sind aber auch keine unproblematischen System-Dlls die vorgesehene Schnittstellenarten verwenden (QT ist c++ statt c ) und auch nicht unbedingt M$ Kompatiblitaets-Richtlinien befolgen ...
von daher find ich es schon gerechtfertigt, die QT lieber statisch zu binden .... grad bei "kleineren" tools. wenn noch die runtime statisch linkst, kriegst schoene fette (wem intressieren heut noch 20-30 MB) binaries die aber dafuer auf jedem windows system laufen wo sie die entsprechenden windows dlls finden (kernel.dll gui.dll etc) also bei faktisch allen ....
Ciao ...