2011-02-09 5 views
1

Мне нужно перераспределить gdiplus.dll v.1.1 с моим приложением и быть уверенным, что эта конкретная версия используется. Например. Windows XP имеет системную версию gdiplus.dll, но ее нельзя обновить (v.1.0). Но если я поместил gdiplus.dll в папку приложения, система все еще будет использоваться. Зачем? Как это решить?как перераспределить Gdiplus (GDI +)?

MSDN says:

Если вы распространяете GDI + на платформе нижнего уровня или платформу, которая не поставляется с этой версией GDI + изначально, установить Gdiplus.dll в каталоге приложения. Это помещает в адресное пространство, но у вас следует использовать опцию linker/BASE , чтобы перезагрузить Gdiplus.dll, чтобы предотвратить конфликт в адресном пространстве .

Но я понятия не имею, как переустанавливать gdiplus.dll и для чего, кто-нибудь может это объяснить?

[EDIT] Кажется, что Microsoft решила не отправлять GDI + 1.1 для Windows XP, только Vista и так далее. Хороший ход. Спасибо всем

ответ

2

Вам не нужно его переустанавливать. Если вы этого не сделаете, тогда DLL будет автоматически пересоздаваться всякий раз, когда она загружается. Это будет иметь мягкое влияние на скорость запуска, но я бы предположил, что его даже не обнаружено.

Тем не менее, кажется, что вы не можете redistibute GDI + 1,1 до XP: How do I install GDI+ version 1.1 on Windows XP?

+0

поэтому MSDN рекомендует это только для почти не замечательного ускорения? и, главный вопрос, как загрузить определенную версию gdiplus.dll, которая находится в папке моего приложения? разве это не должно быть поведение по умолчанию? –

+0

Я не уверен, почему MSDN рекомендует это. Мне кажется странным. Поместите gdiplus.dll в ту же папку, что и ваш exe, свяжите ваш exe с .lib для GDI + 1.1, и это будет тот, который загружается. –

+0

@ Давид: это не так. тщательно проверяется. вероятно, потому, что системная версия кэширована и используется вместо той, что находится в моей папке, не уверен. –

0

Put gdiplus.dll в той же папке, что и ех, связать ех с .lib для GDI + 1.1 и это будет один который загружается.

В первой строке кода вашего приложения необходимо будет зарегистрировать его. Shell «regsvr32/s gdiplus.dll»

+0

, пожалуйста, внимательно прочитайте вопрос, а другой ответ –

Смежные вопросы