DLL 코드입니다
메세지박스가 뜨는 함수와
두수의 합을 반환하는 함수입니다
<!--CodeS-->
// DLL
#include<windows.h>
#include<stdio.h>
extern "C" __declspec(dllexport)
int mb1()
{
MessageBox(0,"Hello!!!","hugeval",MB_YESNO);
return 0;
}
extern "C" __declspec(dllexport)
int sum(int a, int b)
{
return a+b;
}
<!--CodeE-->
델파이에서 DLL불러다 쓰는 코드
<!--CodeS-->
function mb1():integer;stdcall;external'dll1';
function sum(a:integer;b:integer):integer;stdcall;external'dll1';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
mb1();
end;
// 메세지박스 뜨는 프로시져
procedure TForm1.Button2Click(Sender: TObject);
begin
Label1.caption:=inttostr(sum(3,5));
end;
// 두수의 합을구하여 라벨 캡션에 출력해주는 프로시져
end.
<!--CodeE-->
주요 코드부분만 넣었습니다
버튼1을 누르면 잘 실행이 되는데
버튼2를 누르면 실행중에 자꾸 잘못된 메모리를 참조했다고 나오네요
Label1.caption:=inttostr(sum(3,5)); 이부분에서 문제가 있나본데
도저히 뭐가 문제인지 모르겠거든요
혹시 아시는분 답변좀 부탁드리겠습니당;;