Wymuszenie ladowania lokalnej DLL

0

Witam,

Nie wiedzialem za bardzo jak sformułować temat. Sprawa jest taka - Po bardzo wielu poszukiwaniach znalazlem wreszcie pliki nagłówkowe do GDI+ v.1.1 (Pobrałem je stąd: http://thor.prohosting.com/~dbigdawg/gdiplus1_1.zip) i po kilku poprawkach zmusiłem do współpracy z Turbo C++ Explorer.

Ale pojawił się problem - wersja biblioteki gdiplus.dll. Standardowo w systemie Windows XP obecna jest wersja 5, ja potrzebuję skorzystać z wersji 6. Wersja 6 jest standardowo dostarczana np. razem z Microsoft Office 2003.

W czym problem: przy ładowaniu statycznym program nie chce skorzystać z wersji, ktora jest w katalogu z programem (czyli wersji 6) - ładowana jest ciągle stara wersja z katalogu Windows, co skutkuje komunikatem:

Nie znaleziono porządkowej 629 w pliku GDIPLUS.DLL

Jak temu zapobiec?

Nie chce podmieniac globalnie tego pliku (z różnych powodów jest to niewskazane). Czy pozostaje mi cokolwiek oprócz ładowania dynamicznego?

[edit]
Zmienilem nazwe w sekcji eksportu gdiplus.dll na gdiplu_.dll, zmienilem analogicznie nazwe pliku i wygenerowalem od poczatku biblioteke importowa .lib - mam teraz pelna obsluge GDI 1.1 w Turbo C++ i moge robic to samo co pod .NET.

Ale takie rozwiazanie srednio mi odpowiada - temat wciaz otwarty..

0

Dodać do tzw znanych bibliotek wpis w rejestrze w kluczu
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs] dll+ ścieżka
To tak chyba ... niebardzo...
Albo umieścić w katalogu aplikacji plik który powiadamia
system aby ładował .dll z katalogu aplikacji .[zawartość pliku dowolna]
Plik musi mieć nazwę

nazwa_aplikacji.exe.local

i znajdować się w katalogu aplikacji razem z .dll

0

O to mi chodzilo - dziala idealnie, dzieki za info.

1 użytkowników online, w tym zalogowanych: 0, gości: 1