2011-02-09 79 views
1

我需要重新分配gdiplus.dll v.1.1與我的應用程序,並確保使用此特定版本。例如。 Windows XP具有系統版本的gdiplus.dll,但可以不升級(v.1.0)。但是,如果我把我的gdiplus.dll放到應用程序文件夾中,系統仍然在使用。爲什麼?如何解決這個問題?如何重新分配Gdiplus(GDI +)?

MSDN says

如果要重新分發GDI +的 下層平臺或 不與版本 GDI +的船舶本身的平臺,在 您的應用程序目錄中安裝的Gdiplus.dll。這會將 放在您的地址空間中,但是您的 應使用鏈接器的/ BASE選項 重新綁定Gdiplus.dll以防止 地址空間衝突。

但我不知道如何rebase gdiplus.dll和爲什麼,任何人都可以解釋這一點?

[編輯] 似乎微軟決定不運送Windows XP的GDI + 1.1,只有Vista等。好身手。謝謝大家

回答

2

你實際上不需要重新綁定它。如果你不這樣做,那麼當它被加載時,DLL就會被自動重新綁定。這將對啓動速度產生輕微影響,但我猜測它甚至不會被檢測到。

然而,似乎你不能redistibute GDI + 1.1〜XP:在同一文件夾作爲您的exe How do I install GDI+ version 1.1 on Windows XP?

+0

所以MSDN建議這隻用於幾乎不明顯的加速?和主要問題,如何加載我的應用程序文件夾中的特定版本的gdiplus.dll?它不應該是默認行爲? –

+0

我不確定MSDN爲什麼推薦這個。我覺得很奇怪。把gdiplus.dll放到與你exe文件相同的文件夾中,將你的exe文件與GDI + 1.1的.lib文件關聯起來,這就是加載的文件。 –

+0

@David:不是。仔細檢查。可能是因爲系統版本被緩存,而不是我的文件夾中使用的版本,不確定。 –

0

看跌的gdiplus.dll,請將您的exe與.LIB的GDI + 1.1,這將是一個負載。

您應用中的第一行代碼需要註冊。殼牌「regsvr32/s gdiplus.dll」

+0

請仔細閱讀問題和其他答案 –