ソスソスDelphi Q & Aソスfソスソスソスソス
|
ソスEC/C++
ソスEDelphi
ソスEVisual BasicソスソスソスSソスソス
ソス@(VB2-VB6ソスソス.NETソスソスソスp)
ソスEVisual Basic(VB2-VB6)
ソスEVisual Basic .NET
ソスEVisual C++
ソスソスソスソスノゑソスソスソス
Delphiソスナ開ソスソスソスソスソスソスDLLソスソスACソスナ開ソスソスソスソスソスソスソスvソスソスソスOソスソスソスソスソスナ暦ソスソスpソスソスソスソスソスソスソスニ思ソスソスソストゑソスソスワゑソスソスB
C(VC++)ソスナは、ソスソスソスpソスソスソスソスソスソスDLLソスソスLIBソスtソス@ソスCソスソスソスソスvソスソスソスWソスFソスNソスgソスノ会ソスソスソスソス驍アソスニで、
DLLソスソスフ関撰ソスソスソスネ単ソスノ呼び出ソスソスソスソス謔、ソスノなゑソスワゑソスソスB
ソスソスソスソスソスソスソスADelphiソスノゑソスLIBソスtソス@ソスCソスソスソスソス成ソスソスソスソスソスソス@ソスソスソスソスソスソスソスソスソスソスワゑソスソスソスB
ソスヌなゑソスソスソスソスALIBソスtソス@ソスCソスソスソスソス成ソスソスソスソスソスソス@ソスソスソスソスソスソスmソスナはなゑソスソスナゑソスソスソスソスH
ソスワゑソスソスALIBソスtソス@ソスCソスソスソスソスソスソスネゑソスソス鼾ソスADelphiソスソスDLLソスソスCソスナどのようソスノ呼び出ソスソスソスソスソスソス謔「ソスナゑソスソス蛯、ソスソスソスH
ソスソスソスソスソスしソストみまゑソスソスソスソスB
ソスmソスソスソスソスLIBソスtソス@ソスCソスソスソスソスソス成ソスナゑソスソスネゑソスソスフは痛ゑソスソスナゑソスソスヒ。
ソスナゑソスCソスソスDll,Delphiソスナ暦ソスソスpソスフ包ソスソスソスソスソスソスソスソスソスソスニ思ソスソスソスワゑソスソスB
DelphiDll(Delphi7)
http://oto.chu.jp/kujira/text/delphi/dll.htm
libraryProject1;
uses
Windows;
{$R*.res}
functionMsgYesNo(Text:PChar;Title:PChar):BOOL;stdcall;
begin
Result:=(MessageBox(0,Text,Title,MB_YESNOorMB_ICONQUESTION)=IDYES);
end;
exports
MsgYesNo;
begin
end.
cexe(MicrosoftVisualC++.NET)
http://hp.vector.co.jp/authors/VA019517/howtodll.html
#include"stdafx.h"
#include
HINSTANCEhDll;
LONG(__stdcall*MsgYesNo)(PCHAR,PCHAR);
int_tmain(intargc,_TCHAR*argv[])
{
printf("hello");
hDll=::LoadLibraryEx("project1.dll",NULL,0);
if(!hDll){
return0;
}
MsgYesNo=(LONG(__stdcall*)(PCHAR,PCHAR))::GetProcAddress(hDll,"MsgYesNo");
if(!MsgYesNo){
::FreeLibrary(hDll);
return0;
}
boolb=MsgYesNo("test","test");
::FreeLibrary(hDll);
return0;
}
ソス}ソス}ソスさゑソスAソスヤ信ソスソスソス閧ェソスニゑソスソスソスソスソスソスソスソスワゑソスソスB
ソスソスソスソスソストゑソスソスソスソスソスソスソスソスソスソスソスソス@ソスニは異なゑソスワゑソスソスソスソスAソスネ会ソスソスフ包ソスソス@ソスソス
LIBソスtソス@ソスCソスソス(ソスCソスソスソス|ソス[ソスgソスソスソスCソスuソスソスソスソス)ソスソス成ソスナゑソスソスワゑソスソスソスソスB
ソスyソスCソスソスソス|ソス[ソスgソスソスソスCソスuソスソスソスソスソスフ作成ソスz
ソス@ソスPソスDdefソスtソス@ソスCソスソスソスソスpソスソス
ソス@ソスQソスDソスRソス}ソスソスソスhソスvソスソスソスソスソスvソスgソスナ以会ソスソスソスソスソスs
ソス@ソス@ソス@lib/def:"DEFソスtソス@ソスCソスソスソスソス"/out:"LIBソスtソス@ソスCソスソスソスソス"
ソスワゑソスソスソスLソスソスソス@ソスナ作成ソスソスソスソスLIBソスtソス@ソスCソスソスソスソスgソスソスソスソスソスニで、DLLソスノ宣言ソスソスソス黷スソスヨ撰ソスソス利用ソスナゑソスソスワゑソスソスソスソスB
ソスソスソスソスソスソスDelphi7ソスナゑソスDLLソス¥ソス[ソスXソスソスソスソスソスソス
libraryMakeDll;
uses
ソス@SysUtils,Classes;
var
ソス@Input1,Input2:Integer;
{$R*.res}
procedureSetData(i1,i2:Integer);cdecl;
begin
ソス@Input1:=i1;
ソス@Input2:=i2;
end;
functionCalc:Integer;cdecl;
begin
ソス@Inc(Input1,Input2);
ソス@Result:=Input1;
end;
exports
ソス@SetData,Calc;
begin
end.
ソスソスソスソスソスソスVC++6ソスナのソソス[ソスXソスソスソスソスソスソス
#include
externlongCalc(void);
externvoidSetData(long,long);
main()
{
ソス@SetData(100,10);
ソス@printf("Calc=%d¥n",Calc());
}
ソスソスソスソスソスソスdefソスtソス@ソスCソスソスソスソスeソスソスソスソスソスソス
LIBRARYMakeDLL
DESCRIPTION"DLLソスTソスソスソスvソスソス"
EXPORTS
SetData=SetData
Calc=Calc
===VC++6ソスナの趣ソスソスsソスソスソスソス===
>Calc=110