|
라이손레종ㅎ 님이 쓰신 글 :
: 음.. 안녕하세요 ?
: 몇일 동안 Q&A를 다뒤져도 속 쉬원한 글을 못찾았습니다..
: 글속의 코드를 따라 해봐도.. 도통.. 안되네요..
: 혼자서 여기저기 글을보고 DLL파일 생성은 어찌 하는법을 알았는데..
:
: DLL에서 함수 정의는 어찌하며, 함수 호출은 또 어찌 하는지..?
:
: 대체 모르겠습니다.. 일에 쪼달려 시간이 부족 하시더라도 부디
: 아신다면 답글을 바랍니다.. 제가 아는것이 C언어 뿐이어서
: 예제 코딩을 적어주신다면 감사ㅜ.ㅜ 하겠습니다.
///////////////////////
extern "C" __declspec(dllexport) void __stdcall Bmp_800(int t); << 여기 에 Bmp_800 (int t)부분을
님이 만드신함수명으로 대체하세요
#pragma argsused
//---------------------------------------------------------------------------
void __stdcall Bmp_800(int t) << __stdcall 이부분은 함수이름앞에 적어주세요
{
//이하는 님의 코딩하신부분이라 가정하구요
코딩.....
}
이렇게하시고 컴파일을합니다
다음은 호출부분입니다
HINSTANCE dll;
typedef void (__stdcall *MY_FUNC_testDLL) (int);
dll = LoadLibraryA("dll파일이름"); //같은자리의경우 그대로파일명만쓰시고 경로가있다면
경로까지 써주시면됩니다
if(dll == NULL) ShowMessage("NO read");
MY_FUNC_testDLL Bmp_800X=(MY_FUNC_testDLL)GetProcAddress(dll,"Bmp_800");
또한 Bmp_800은 님이만드신함수 이름으로 대체하시고
Bmp_800X 함수사용시 함수이름입니다
다르게 적으셔도 무방합니다
typedef 정의부분은 함수의원형을 적어주셔야합니다 위엔
void 로되어잇지만 원형이 char 일경우 char 로변경해주시고 int 면 int 로 변경
해주세요
()속의 int또한 님이정의해놓으신 변수로 변경해주시고
그렇게한다음 만약 버튼을 누르면 실행하도록 한다면
버튼함수안에 넣어주시고 프로그램실행될때 실행하도록하신다면 OnCreate 안에다가 넣어주시면
되겠습니다
FreeLibrary(dll);
이함수는 마지막에 꼭포함하시구요
OnClose에다가 포함하셔도됩니다 단
HINSTANCE dll;이함수를
전역으로 선언하셔야함
그럼
|