2011-02-09 5 views
1

gdiplus.dll v.1.1を私のアプリケーションに再配布する必要があります。この特定のバージョンが使用されていることを確認してください。例えば。 Windows XPにはgdiplus.dllのシステムバージョンがありますが、アップグレードすることはできません(v.1.0)。しかし、gdiplus.dllをアプリケーションフォルダに入れても、システムの1つがまだ使用されています。どうして?これを解決するには?Gdiplus(GDI +)をどのように再配布するのですか?

MSDN says

あなたは ダウンレベルのプラットフォームや がネイティブ+ GDIのバージョンが付属していません、 アプリケーションディレクトリににGdiplus.dllをインストールするプラットフォームにGDI +を再配布している場合。これにより、アドレス空間に が置かれますが、 は、 アドレス空間の競合を防ぐために、リンカー/ BASEオプション を使用してGdiplus.dllを再配置する必要があります。

しかし、私はgdiplus.dllをどのようにrebaseするのか、誰に説明することができませんか?

[編集] Microsoftは、Windows XP用のGDI + 1.1、Vistaのみなどを出荷しないことにしました。ニースの動き。ありがとうございました

答えて

2

実際にリベースする必要はありません。そうしないと、DLLはロードされるたびに自動的にリベースされます。これは始動速度に軽度の影響を与えますが、私はそれが検出できないと推測します。

しかし、それはあなたがGDI + 1.1 XPにredistibuteことができないようです。あなたの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を、GDI + 1.1用の.libを使用してexeファイルをリンクし、それが1になりますロードする。

アプリのコードの最初の行に登録する必要があります。シェル "regsvr32/s gdiplus.dll"

+0

質問とその答えをよく読んでください –

関連する問題