ソス@ソスソスDLLソスフ会ソスソスソスソスソスソスsソスソスソスソスソスソスノは?ソスHソスH
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
ソスEpapy's softwarelibrary
http://hp.vector.co.jp/authors/VA009712/take/delphi/kabesys.htm#dlluse
ソスノゑソスソスソスソスソストゑソスソスソス謔、ソスノゑソスソスト、DLLソス動的ソスCソスソスソス|ソス[ソスgソスソスソスナ鯉ソスノ、FreeLibrary()ソスナ会ソスソスソスソスソス謔、ソスニゑソスソストゑソスソスソスフでゑソスソスソスソスAFreeLibraryソスソスソスソスソスソスソスsソスソスソスソスワゑソスソスソスB
ソスソスソスフ抵ソスソスOソスワでは趣ソスソスsソスソスソスソストゑソスソスワゑソスソスB
ソスヌゑソスソスソスソストでゑソスソス蛯、ソスソスソスHソスワゑソスソスAソスヌゑソスソスソスソスソスホ、FreeLibraryソスソスソスソスsソスナゑソスソスソスフでゑソスソス蛯、ソスソスソスBDLLソスフ難ソスソスIソスCソスソスソス|ソス[ソスgソスヘ擾ソスソス゚てなのでよくソスソスソスソスソスソスワゑソスソスソスB
ソスソスソスソスソスソスソスソスソス閧「ソスソスソスワゑソスソスB
ソス@ソスソスソスネゑソスソスソスソスヌのようソスノ記ソスソスソスソスQソスlソスノゑソスソスト、ソスヌのようソスネコソス[ソスhソスソスソスソスソスソスソスソスフゑソスソスソスソスソスソスソスソスソスネゑソスソスソスホ難ソスソスソスソス謔、ソスソスソスソスソスソスワゑソスソスソスB
ソスワゑソスソスヘ趣ソスソスモのソソス[ソスXソスソスLソスqソスソスソストゑソスソスソスソスソスソスソスソスB
FreeLibraryソスフ会ソスソスノソソス[ソスXソスソスソスソスソスソスニ、ソスソスソスソスソスワで趣ソスソスsソスソスソスソスソス謔、ソスネゑソスA
FreeLibraryソスナエソスソスソス[ソスソスソスソスソスソスソスソスソストゑソスソスソスけソスナはなゑソスソスAFreeLibraryソスネ前ソスフソソス[ソスXソスナエソスソスソス[ソスソスソスソスソスソスソスソスソストゑソスソス驍ゥソスソスBww
DLLソスフ関撰ソスソストび出ソスソスソスナ、ソスソスソスソスソスソスPCharソス^ソスネのに、ソスソスソスフまま包ソスソスソスソスソスソス''ソスナゑソスソスソスソスソスソスト難ソスソスソストゑソスソスソスニゑソスソスDソスDソスDソスD
ソスヘゑソスソスソスソストゑソスソスソスソスソスXソス}ソス¥
ソスQソスlソスワでゑソス
ソステ的ソスCソスソスソス|ソス[ソスgソスフ場合ソスヘ、ソスヌみ搾ソスソスン会ソスソスソスソスソスソスソスナゑソスソスフゑソス
ソスネにゑソスソスソスネゑソスソストゑソスソスソスソスナゑソスソスB
ソスソスソスIソスフ場合ソスソス
ソスソスソスソスソスソスソスフサソスソスソスvソスソスソスノは鯉ソスソス_ソスソスソスソスソスソスソスソス
ソスソスソスIソスCソスソスソス|ソス[ソスgソスナゑソス
ソスソスソスソスソスヨ撰ソスソスソスナ ソスヌみ出ソスソスソス鼾ソスヘ、
ソスソスソスソスソスフ場合ソスヘ、ソスKソスソスソスソスソスソスソスソスソス謔、ソスノ擾ソスソスソスソストゑソスソスソスソスソスKソスvソスソスソスソスソスソスワゑソス
hLibrary:=LoadLibrary('example.dll'); //DLLソスソスwソスソス
if hLibrary<>0 then
try
ソスBソスBソスBソスソスソスソスソスノ擾ソスソスソス
finally FreeLibrary(hLibrary);
end;
ソスソスソスソスvソスソスソスWソスFソスNソスgソスフどゑソスソスソスソスナ読み搾ソスソスソスソス
ソスヌゑソスソスナ会ソスソスソスソスソス驍ゥソスかソスソスネゑソスソス鼾ソスソス
DLLソスフ保托ソスソスpソスマ撰ソスソスソスpソスモゑソスソスソス
formソス@createソスソスソスソス 0ソスノ擾ソスソスソスソスソスソスソスソスソス
ソスヌゑソスソスソスソスナ会ソスソスソスソスソスソスソスソス 0ソスノ設定しソスソス
destoryソスソスソスノ ソスヌみ搾ソスソスソスナゑソスソスソスフゑソスソスソスソスソスソスソストゑソスソスソスフゑソス
ソス`ソスFソスbソスNソスソスソスト ソスソスソスソスソスソストなゑソスソスソスホ会ソスソスソスソスソストゑソスソスソスソスソス謔、ソスノゑソスソスソスニゑソスソスソスソスナゑソス
ソスGソスソスソス[ソスソスソスNソスソスソス閧サソスソスソスネとゑソスソスソスナゑソス
tryソス¥ソスソスソスソスgソスソスソス謔、ソスノゑソスソスソスニゑソスソスソスソスニ思ソスソスソスワゑソス
ソスソスソスソスソスAソスソスソスソスマソソス[ソスXソスKソスvソスナゑソスソスソスソスヒ、ソスA
ソスソスソスソスソスソスソスソスソスソスソスソスソスソスソス¥ソス[ソスXソスノソスソスソスソスソスソスソスソスソスフゑソスソスソスソスソスソスネゑソスソスソスソスAソスAソスAソスiソスXソス‾ソス}ソスZソスソスソスADLLソスソスソストどゑソスソスlソスソスnソスソスソストゑソスソスホゑソスソスソスソスフゑソスソス謔ュソスソスソスソスソスソスネゑソスソスソスフで、ソスAソスAソスj
-----DLLソスフソソス[ソスX-----
function Load_ICONImage(const FileName: PChar; p: Pointer):boolean; var
ico : TICON;
begin
ico := TIcon.Create;
try
ico.LoadFromFile(FileName);
TBitmap(p).Width := GetSystemMetrics(SM_CXICON);
TBitmap(p).Height := GetSystemMetrics(SM_CYICON);
DrawIconEx(TBitmap(p).Canvas.Handle,0,0,ico.Handle,0,0,0,0,3);
result := true;
finally
ico.Free;
end;
end;
//ソスソスソスソスネようソスネのゑソスAソスソスソスソスPNGソスソスJpegソスソスGifソスナゑソスソスソストまゑソスソスB
exports
Load_ICONImage, Load_JPEGImage, Load_BITMAPImage, Load_PNGImage, Load_GIFImage;
begin
end.
ソスナ、ソスソスソスsソスtソス@ソスCソスソスソスソスソスソス
procedure TMain.OpenPictureFile(FileName : string);
type
TLoad_JPEGImage = function(const FileName: PChar; p: Pointer):boolean;
TLoad_PNGImage = function(const FileName: PChar; p: Pointer):boolean;
TLoad_GIFImage = function(const FileName: PChar; p: Pointer):boolean;
TLoad_ICONImage = function(const FileName: PChar; p: Pointer):boolean;
var
hLoadLib: THandle;
Load_JPEGImage: TLoad_JPEGImage;
Load_PNGImage : TLoad_PNGImage;
Load_GIFImage : TLoad_GIFImage;
Load_ICONImage: TLoad_ICONImage;
ext : string ;
bmp : TBitmap;
begin
ext := AnsiUpperCase(ExtractFileExt(FileName));
hLoadLib := LoadLibrary('LoadPicture.dll');
if hLoadLib = 0 then
begin
MessageBox(Handle,'DLLソスソスソスネゑソスソス`','Error',MB_OK or MB_ICONERROR);
Exit;
end;
bmp := TBitmap.Create;
try
if ext = '.BMP' then
begin
bmp.LoadFromFile(FileName);
end;
if (ext = '.JPG') or (ext = '.JPEG') then
begin
@Load_JPEGImage := GetProcAddress(hLoadLib,'Load_JPEGImage'); //ソスヨ撰ソスソスソスCソスソスソス|ソス[ソスg
if @Load_JPEGImage <> nil then //ソスヨ撰ソスソスソスソスソスソスソスソス
begin
Load_JPEGImage(PChar(FileName),Pointer(bmp));
end;
end;
if ext = '.PNG' then
begin
@Load_PNGImage := GetProcAddress(hLoadLib,'Load_PNGImage');
if @Load_PNGImage <> nil then
begin
Load_PNGImage(PChar(FileName),Pointer(bmp));
end;
end;
if ext = '.GIF' then
begin
@Load_GIFImage := GetProcAddress(hLoadLib,'Load_GIFImage');
if @Load_GIFImage <> nil then
begin
Load_GIFImage(PChar(FileName),Pointer(bmp));
end;
end;
if ext = '.ICO' then
begin
@Load_ICONImage := GetProcAddress(hLoadLib,'Load_ICONImage');
if @Load_ICONImage <> nil then
begin
Load_ICONImage(PChar(FileName),Pointer(bmp));
end;
end;
Image1.Picture.Assign(bmp);
finally
bmp.Free;
FreeLibrary(hLoadLib);
ShowMessage('Freeソスソスソス黷スソスH');
end;
end;
ソスネ奇ソスソスソスソスノゑソスソスソスニ、bmpソスノ画像ソスソスソスソスソスソスソスソスト返ゑソスソストゑソスソス驍ゥソスネ〜ソスニゑソスソスvソスソスソストゑソスソスソストみゑソスソスけソスナゑソスソスBソスナ、ソスソスソスsソスソスソスソスニ、finallyソス゚最鯉ソスソスShowMessage()ソスヘ表ソスソスソスソスソスソスソスOソスノ固まゑソスソストゑソスソスワゑソスソスソスナゑソスソスB
ソスソスソスネみに、tryソス`finallyソスヘ、ソスソスソスソスCreateソスソスソス¥ソスbソスhソスソスgソスソスソスニゑソスソスヘ必ソスソスソスソスソスソストまゑソスソスBソスナ、ソス‾ソスワゑソスソストまゑソスソスB
ソスヌゑソスソスソスソスXソスソスソスソスソスソスソス閧「ソスソスソスワゑソスソスB
finally
bmp.Free;
FreeLibrary(hLoadLib);
ソスソス
finally
bmp.Free;
end;
finally
FreeLibrary(hLoadLib);
end;
ソスハ々ソスノゑソスソスソスソスルゑソスソスソスソスソスソスソスソスナゑソスソスB
ソスワゑソスソスADLLソスフ包ソスソスソス
export; ソス@ソスソスソスソスソストまゑソスソスソスソスH
function Load_ICONImage(const FileName: PChar; p: Pointer):boolean; var
ico : TICON;ソス@export;
ソスンゑソスソスソスソスノ?
ソスソスノ、
hLoadLib := LoadLibrary('LoadPicture.dll');
try
bmp := TBitmap.Create;
try
ソス@ソス@ソス`ソス`
finally
bmp.free;
end;
finally
FreeLibrary(hLoadLib);
end;
ソスニゑソスソスワゑソスソスソスソスソスソスAソスマ会ソスソスソスソスソスワゑソスソスソスB
function Load_ICONImage(const FileName: PChar; p: Pointer):boolean; export;
var
ico : TICON;ソス@
begin
ソスEソスEソスE
end;
ソスニゑソスソスソスワゑソスソスソスソスソスソスマ会ソスソスネゑソスソスナゑソスソスB