Skip to content

Visual Studio 2008에서 Simple DLL 만든 후 Excel에서 사용하기

※ 주의사항 추가
- 32bit XP에서 Visual Studio 2008로 'Debug' 또는 'Release' 32bit Compile 한 경우
≫ 32bit XP C:\Windows\system32 폴더에 Debug나 Release DLL 복사 후 Excel 2007 에서 사용 OK
≫ 64bit 7 C:\Windows\SysWOW64 폴더에 Release DLL 하나만 복사 후 Excel 2007 에서 사용 OK

예전에 Visual Sutio 6.0으로 DLL 파일을 만들어 Excel에서 사용하다가 Visual Studio 버전이 2008로 업그레이드 되면서 거기에 맞춰서 DLL 파일을 만드는 방법을 기억하려고 몇 글자 끄적인다. 물론, 구글 검색도 해봤지만 영 성에 차지 않는 것도 큰 이유 중의 하나라 할 수 있다.

  1. Visual Studio 2008을 시작한다.
    사용자 삽입 이미지
  2. '파일(F)→새로 만들기(N)→프로젝트(P)'를 차례로 클릭한다.
    사용자 삽입 이미지
  3. 'Win32 프로젝트'를 선택한다.
    사용자 삽입 이미지
  4. 아래에 이름을 입력 후 '확인'을 클릭한다. 본인의 경우 'MyUtil'이라고 입력했다.
    사용자 삽입 이미지
  5. '다음 >'을 클릭한다.
    사용자 삽입 이미지
  6. 'DLL(D)' 라디오 버튼을 선택하고 '빈 프로젝트(E)'에 체크한 후 '마침'을 클릭한다.
    사용자 삽입 이미지
  7. 솔루션 탐색기 창에서 '소스 파일→추가(D)→새 항목(W)'을 차례로 선택한다.
    사용자 삽입 이미지
  8. 'C++ 파일 (.cpp)'을 선택한 후 이름을 입력한 다음 '추가(A)' 버튼을 클릭한다. 본인의 경우 'MyUtil'이라고 입력했다.
    사용자 삽입 이미지
  9. 다시 솔루션 탐색기 창에서 '소스 파일→추가(D)→새 항목(W)'을 차례로 선택한다.
  10. '모듈 정의 파일 (.def)'을 선택한 후 이름을 입력한 다음 '추가(A)' 버튼을 클릭한다. 본인의 경우 일관성 유지를 위해서 'MyUtil'이라고 입력했다.
    사용자 삽입 이미지
  11. 솔루션 탐색기 창에서 아까 추가했던 MyUtil.cpp 파일을 더블 클릭하거나 소스 코드 입력 부분 위에 있는 MyUtil.cpp 탭을 선택한다.
    사용자 삽입 이미지
  12. 아래와 같이 코드를 입력한다.
    #include <stdio.h>
    #include <math.h>
    
    __declspec(dllexport) double MyX(double a, double b)
    {
    	if (a > b)
    		return pow(a, b);
    	else
    		return pow(b, a);
    }
    

    사용자 삽입 이미지

  13. 솔루션 탐색기 창에서 아까 추가했던 MyUtil.def 파일을 더블 클릭하거나 소스 코드 입력 부분 위에 있는 MyUtil.def 탭을 선택한다.
  14. 아래와 같이 입력한다.
    LIBRARY	"MyUtil"
    EXPORTS
    MyX	@1
    

    사용자 삽입 이미지

  15. 솔루션 탐색기 창에서 'MyUtil'을 선택한 후 마우스 우클릭으로 '속성(R)'을 클릭한다.
    사용자 삽입 이미지
  16. MyUtil 속성 페이지 창에서 '구성 속성→C/C++→고급'을 클릭한 후 우측 '호출 규칙' 콤보 박스에서 '__stdcall(/Gz)'을 선택한 다음 '확인' 버튼을 클릭한다.
    사용자 삽입 이미지
  17. 다시 속성 페이지 창을 열어 '구성 속성→링커→입력'을 선택한 후 우측 '모듈 정의 파일'에 방금 입력했던 '.def' 파일이 명시되어 있는지 확인한 다음 '확인' 버튼을 클릭한다.
  18. '빌드(B)→솔루션 빌드(B)'를 차례로 선택한다.
    사용자 삽입 이미지
  19. 성공적으로 컴파일 됐으면, 아래와 같이 DLL 파일이 생성된 것을 확인할 수 있다.
    사용자 삽입 이미지
  20. Excel 파일을 열어서 'Alt+F11'로 'Visual Basic Editor'를 연다.
  21. 'Microsoft Excel 개체'를 마우스 우클릭한 후 '삽입(N)→모듈(M)'을 선택하여 모듈을 삽입한다.
  22. 아래와 같이 코드를 입력한다.
    Option Explicit
    
    Public Declare Function MyX Lib _
    "C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\Projects
    \MyUtil\Debug\MyUtil.dll" _
    (ByVal a As Double, ByVal b As Double) As Double
    

    사용자 삽입 이미지

  23. Excel 창의 임의의 시트에서 몇몇 Cell에 아래와 같이 입력해서 DLL 내 함수를 제대로 호출했는지 확인한다.([{DLL 내에 있는 'MyX'란 함수의 값과 Excel 자체 함수인 'POWER' 함수의 값이 모두 일치함을 확인할 수 있다.}])
    사용자 삽입 이미지

이러한 과정을 통해 Visual Studio 2008에서 Simple DLL을 생성하여 Excel에서 호출을 통해 사용할 수 있다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.