喫茶XRAYトップページ

[スレッド全体
]

[11612] Re8:リソースのビットマップ取得返信 削除
2017/11/28 (火) 09:51:11 Mr.XRAY
> う〜む何故だ.

はい分かりました.

Delphi XE では LoadLibrary ではなく LoadLibraryEx を使用すると
正常に動作します.

LoadLibraryEx のフラグに LOAD_LIBRARY_AS_DATAFILE を指定します.
フラグの値を 0 にすると LoadLibrary と同じになります.


[11613] Re9:リソースのビットマップ取得返信 削除
2017/11/28 (火) 10:39:18 Mr.XRAY
> LoadLibraryEx のフラグに LOAD_LIBRARY_AS_DATAFILE を指定します.
> フラグの値を 0 にすると LoadLibrary と同じになります.


ついでに説明しておきますと,
BPL ファイルというのは DLL と同じです.
しかし,Delphi 専用でしかも Delphi のバージョン依存です.

バージョン依存ですから Delphi 6 で作成した EXE では LoadLibrary で
Delphi 6 用の BPL は読み込めますが,Delphi XE の BPL は読み込めないわけです.
LoadLibraryEx で DATAFILE を指定して読み込めば読み込めることになります

参考記事
[005_フォームを実装した実行時パッケージの作成]
http://mrxray.on.coocan.jp/Delphi/plSamples/005_FormInPackage.htm


[11614] Re9:リソースのビットマップ取得返信 削除
2017/11/28 (火) 12:45:08 おかぽん
▼ Mr.XRAYさん
いつもながら仕事が早い。

> LoadLibraryEx のフラグに LOAD_LIBRARY_AS_DATAFILE を指定します.
> フラグの値を 0 にすると LoadLibrary と同じになります.

しかし、そんなところによく気がつきます。
まず、LoadLibraryExなんて、使おうとも思いません。
BPLなんて、単に拡張子が違うだけのDLLって認識なので、関数の呼び出しは
ともかく、リソースの一つや二つ、Loadできれば一緒だろと(^^;)



[11616] Re10:リソースのビットマップ取得返信 削除
2017/11/28 (火) 13:46:17 Mr.XRAY
▼ おかぽんさん

> しかし、そんなところによく気がつきます。

いや,その,これはですね.MSDN の記事そのままです.
掲載しているサンプルコードもそうですが,
ネットで検索すると,同じようなのがいくつかあります.
おそらく,誰かが最初にやったのをまた誰かがというのがありますよね.

最近,えっと... あっそうそう,インストールされている .NET Framework
なんかも,ネットうえにサンプルコードが結構ありました.
私は MSDN 説明記事にしたがってコーディングしました.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82