как распространять Gdiplus (GDI +)? - PullRequest
1 голос
/ 09 февраля 2011

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

MSDN говорит :

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

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

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

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

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

Однако, похоже, что вы не можете перезапустить GDI + 1.1 до XP: Как установитьGDI + версия 1.1 для Windows XP?

0 голосов
/ 11 февраля 2014

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

Первая строка кода в вашем приложении должназарегистрируйте это.Оболочка "regsvr32 / s gdiplus.dll"

...