본문 바로가기
Autohotkey/강좌2

[Autohotkey] VC++ 로 dll 제작 해서 오핫에서 이용하기

by 슈퍼닷 2013. 6. 9.
반응형

VC++ 2008 다운로드 주소 : http://jogamja.tistory.com/entry/Visual-C-2008-Express-Edition-SP1-설치-파일

 

저는 VC ++ 2008 을 이용했습니다. 6.0 이나 2010 이나 아무튼 다른 버전을 이용해도 됩니다.

오핫에서 하다보면 c언어와의 연동이 필요할때 dll을 제작 해야 되서 글을 올립니다.

 

일단 VC++ 을 실행시켜주세요.

그리고 나서 프로젝트 만들기를 하신후 Win32 에서 Win32프로젝트 누르고 프로젝트 이름 적은 다음에

Dll 체크하신후 빈프로젝트에 체크 하셔서 프로젝트를 하나 만들어 주세요.

6.0은 아마도 Dll 어쩌고 되어있을 거에요.

 

 

 

 

이제 cpp 파일 하나 만들어주세요.

 

 

 

 

 

아무튼 이렇게 소스 파일 하나 만드시고 이렇게 적어주세요.

 

extern "C" __declspec(dllexport) int add(int a,int b)
{
return a+b;
}

 

일단 위 내용이 a 와 b를 받아서 더한값을 반환하는 스크립트라는것은 알고 계실거에요.

이제  extern "C" __declspec(dllexport) int add(int a,int b) 에 대해서 알아보죠.

 

extern "C" 는 C형식으로 하라는 지시자 입니다.

__declspec(dllexport) 라는거는 함수만들때 그냥 들어간다고 생각하시면 되요.

dllexport 말고도 dllimport 라는 것도 있어요.

dllexport 는 제 기억으로 밖에서 참조당할수 있고 dllimport 는 밖에서 받아올수 있다고 기억 나는것 같네요.

int add(int a,int b) 는 말 안해도 아실거라고 생각합니다. 기본적인 함수의 형태이지요.

 

이제 컴파일을 해보죠.

 

Ctrl + F5 가 컴파일 단축키 입니다.

 

이제 컴파일이 되셨을 거에요.

그러면 내문서로 가셔서 Visual Studio 폴더 찾으셔서 안에 Project 들어가신후에 아까 만드신 프로젝트 이름 들어가세요.

그런후 Debug 에 들어가시면 프로젝트이름.dll 이 만들어져 있을거에요.

그거 바탕화면으로 가져오시고 이제 dll이 정상적으로 작동되나 한번 확인을 해봅시다.

 

오핫 파일 하나만드셔서 이렇게 적으세요.

 

Result:=DllCall("프로젝트이름.dll\add",int,1,int,50)

msgbox,% Result

 

결과는 저희의 의도 대로 한다면 51이 나와야 정상적이죠 .

한번 결과를 보죠.

 

 

 

 

51이 정상적으로 출력 되었네요.

이렇게 dll 만드는법을 다 말해드렸습니다.

DllMain 부분은 필요하지 않을거라 생각하고 함수 부분 만드는것만 올려드렸습니다.

 

이제부터 쓰는 글은 배포용 dll을 만들때 쓰는 글입니다.

 

---------------------------------------------------------------------------------------------------------------------------

 

위의 글을 다 읽으시고 dll을 만드셨습니다. 근데 배포를 할때 정상적으로 작동 되지 않을 수 있습니다.

VC++ 재배포 패키지를 설치해야되는 문제도 있지만 다른 문제도 있습니다.

그걸 해결해주기위해 다시 VC++ 을 실행 합니다.

아까 만드신 프로젝트 들어가셔서 프로젝트 - 프로젝트 속성 을 클릭해 주세요.

 

 

위 사진처럼 C/C++ - 코드생성 들어가세요.

그런후에 런타임 라이브러리를 다중 스레드 (/MT) 로 바꾸시고 적용 누르신후 확인 누르시면 됩니다.

그러고 나서 컴파일 하시면 아마도 dll의 용량이 150kb 정도로 될정도로 용량이 조금 커집니다.( 원래는 27kb정도)

아무튼 이렇게 하고나면 VC++ 을 설치 하지 않은 사용자도 사용할수 있습니다.

반응형

댓글