천문 계산
2009.08.19 22:08

DE404 DLL 파일 사용법

조회 수 9399 댓글 8
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

 이 글은 다음 게시물에서 첨부한 파일의 사용법입니다.


[프로그램 소스]행성의 위치를 계산(DE404)하는 DLL 파일
http://blueedu.dothome.co.kr/xe/815



아래 코드는 설명서에 있는 코드입니다.

이 소스 코드는 비주얼베이직 6에서 쓸 수 있습니다.

이 소스 코드에 있는 각각의 코드 블럭이 하는 역할에 대해 설명하겠습니다.


일단 전문을 나열하겠습니다.


    Type TPlanetData
      JD As Double
      l As Double
      b As Double
      r As Double
      ipla As Long
    End Type
   
    Declare Function Plan404 Lib "libplan404.dll" (pla As TPlanetData) As Long
   
    Sub Main()
      Dim pla As TPlanetData, i As Long
     
      pla.ipla = 3
      pla.JD = 2452305.5
     
      i = Plan404(pla)
     
      MsgBox "지구의 위치(JD 2452305.5 UT)" & VbCrLf & _
             "황경: " & pla.l & "(rad)" & VbCrLf & _
             "황위: " & pla.b & "(rad)" & VbCrLf & _
             "거리: " & pla.r & "(AU)"
    End Sub


이 코드는 전반적으로 구조체 선언부, DLL 선언부, Main() 함수 부분으로 이루어져 있습니다. 각각의 코드 블럭을 살펴보도록 하겠습니다.


    Type TPlanetData
      JD As Double
      l As Double
      b As Double
      r As Double
      ipla As Long
    End Type


이 코드는 프로그램에서 쓰는 구조체를 선언하는 부분입니다. DE404 DLL 파일에서 자료를 입력받고 출력할 때 이런 형식의 구조체를 쓰고 있으므로 비주얼베이직에서도 그에 맞추어 구조체를 만들어주어야합니다. 각각의 구성요소는 다음 자료를 주고 받습니다.



JD: 위치를 계산하려는 시각 자료를 DE404 DLL 파일에 알려줍니다. 율리우스 적일로 입력합니다(입력).

ipla: 위치를 계산하려는 천체를 지정합니다(입력).

l: 입력받은 시각의 행성의 일심 황경을 출력합니다(출력 단위: 라디안).

b: 입력받은 시각의 행성의 일심 황위를 출력합니다(출력 단위: 라디안).

r: 입력받은 시각의 행성의 거리(태양-행성간 거리)를 출력합니다(출력 단위: 천문단위).


(주의: 행성은 태양 중심의 위치를 츨력하지만 달은 지구 중심의 황도좌표, 거리를 출력합니다. )



다음 부분입니다.


Declare Function Plan404 Lib "libplan404.dll" (pla As TPlanetData) As Long


이 코드는 DLL 파일에 있는 함수를 쓰겠다고 프로그램 언어에 알려주는 역할을 합니다.

libplan404.dll 파일에 있는 Plan404 함수를 쓰고 TPlanetData 형식의 변수를 매개변수로 쓰겠다고 명시해 놓았습니다.

한가지 주의할 부분이 있는데, Lib 바로 뒤에 이어지는 "libplan404.dll"는 DLL 파일의 경로와 이름을 지정해 주는 부분입니다. 비주얼베이직 IDE 환경에서 아무런 문제없이 작업하려면 libplan404.dll 파일을 윈도우즈의 시스펨 폴더에 복사해두거나 libplan404.dll 파일이 있는 전체 경로를 적어주어야합니다. 컴파일 된 프로그램을 실행할 때에는 프로그램 파일과 같은 폴더에 libplan404.dll 파일이 있으면 됩니다.


다음 부분으로 넘어갑니다.

이 부분은 Main 함수 부분입니다. 이 함수는 프로그램이 시작되면 처음으로 실행하는 함수입니다. 설명은 주석문으로 대신합니다.


Sub Main()
      Dim pla As TPlanetData 'Plan404 함수를 호출할 때에 쓸 변수를 선언합니다.

      Dim i As Long 'Plan404 함수의 반환값을 받을 변수입니다.
     
      pla.ipla = 3 '계산할 천체를 지구로 정합니다.
      pla.JD = 2452305.5 '계산할 시점을 2452305.5로 정합니다.
     
      i = Plan404(pla) 'Plan404 함수를 호출합니다.
     

     '메세지 박스에서 계산 결과를 출력합니다.

     MsgBox "지구의 위치(JD 2452305.5 UT)" & VbCrLf & _
             "황경: " & pla.l & "(rad)" & VbCrLf & _
             "황위: " & pla.b & "(rad)" & VbCrLf & _
             "거리: " & pla.r & "(AU)"
    End Sub



?
  • ?
    자운 2009.08.20 00:01

    자세한 설명 감사합니다. 다만, 말씀하신대로 "libplan404.dll" 파일을 시스템 폴더에 복사하거나 특정 폴더에 복사하고 전체 경로를 적어 보았으나 '파일을 찾을 수 없습니다. : plan404.dll'이라는 에러 메시지만 뜨네요. 왜? 그럴까요! 좀 더 자세히 알려주시면 감사하겠습니다.

  • profile
    창환 2009.08.20 01:45

    혹시 운영체제로 비스타를 쓰고 있다면 VB6을 관리자 권한으로 실행해야 정상적으로 작동합니다.

    XP 이하의 버전을 쓰고 있다면...

    글쎄요, 파일 이름과 경로를 정확하게 입력하면 문제없이 작동을 해야되는데.. 

    (참고로 시스템 폴더는 32비트 윈도우인 경우 윈도우 폴더 아래에 있는 system32 폴더입니다.)


    혹시 마이크로소프트 비주얼 C++ 2008 SP1 런타임 라이브러리 파일이 설치되어 있는지 확인해보시기 바랍니다. 위의 DLL 파일은 VC++ 2008로 컴파일이 되어 있어서 VC++ 2008 런타임 라이브러리 파일이 있어야 작동합니다.

  • ?
    자운 2009.08.20 07:04
    아이고! 이렇게나 빨리 답변을 주셔서 정말 감사합니다.  알려주신대로 VC++ 2008 런타임 라이브러리 파일을 설치하니 잘 작동하네요. 감사합니다.
  • ?
    자운 2009.09.11 22:26

    설명서에 보면,  '지구의 경우  지구의 위치가 아니라 지구와 달의 질량 중심(EMB)의 위치를 계산합니다.'라고 되어 있는데, '지구의 위치'를 직접 구하거나 EMB를 지구의 위치로 변환하는 공식(방법)이 있으면 배워 주시면 감사하겠습니다.

  • ?
    창환 2009.09.11 23:30

    EMB에서 지구의 위치를 구하는 방법은 비교적 간단한 편입니다.

    내일 그 방법에 관해서 새로운 글을 하나 올리도록 하겠습니다.

  • ?
    자운 2014.04.17 22:43

    안녕하시죠? 오랫만에 질문드립니다.

    윈도우7에서 비베를 사용하기가 불편해서 vb.net으로 바꾸려니 쉽지않네요.

    혹시 vb.net 에서 사용할려면 어떻게 수정해야 하는지 가르침 주시면 감사하겠습니다.

    구조체선언부를 Structure TPlanetData 로 변환하고 실행하니

     i = Plan404(pla) 에서

    '보호된 메모리를 읽거나 쓰려고 했습니다. 대부분 이러한 경우는 다른 메모리가 손상되었음을 나타냅니다.'라는 에러메세지가 뜨면서 실행이 되질않네요.


    항상 행복하시길....

  • profile
    창환 2014.04.20 16:10

    안녕하세요. 제가 vb.net을 거의 쓰지 않아 자세한 부분은 모르겠습니다. 

    다만 메모리 쪽 문제라면 VB6과 VB.Net의 변수 형태의 차이가 원인이 아닐까 합니다. 

    vb.net으로 바뀌면서 변수의 형식에 상당한 변화가 생긴 것으로 알고 있는데, 그 부분을 점검해보시는 게 어떨까 합니다. 

  • ?
    자운 2014.04.27 22:43

    예! 신경 써주셔서 감사합니다.

    좀 더 연구해보면 답을 찾을 수 있겠죠.


    항상 건승하시길...


  1. No Image

    [프로그램 소스]행성의 위치를 계산(DE404)하는 DLL 파일

    성도 프로그램에서 쓰고 있는 행성, 달 위치 계산 라이브러리입니다. 비주얼 C++ 2008에서 컴파일 할 수 있고, 프로젝트 파일을 새로 만들면 비주얼 C++ 6에서도 쓸 수 있습니다. (첨부 파일 안에 들어있는 DLL 파일은 비주얼 C++ 2008에서 컴파일 한 것으로 ...
    Date2009.08.12 Category천문 계산 By창환 Views8947
    Read More
  2. [책]역서

    (사진은 2008년판, 출처: 천문연구원) -제목: 역서 -편찬: 한국천문연구원 -발행사: 남산당 -언어: 한국어 한국천문연구원에서 펴낸 역서입니다. 현재 매년 새로운 역서를 발행하고 있습니다. 이 책에는 해당 해의 일력 자료, 해와 달, 행성, 혜성, 소행성의 ...
    Date2009.08.12 Category천문 계산 By창환 Views6517
    Read More
  3. [책]The Astronomical Almanac

    (사진은 2008년판, 출처는 구글 검색) -제목: Astronomical Almanac for the Year 2010 and Its Companion, The Astronomical Almanac Online: Data for Astronomy, Space Sciences, Geodesy, Surveying, Navigation, and other applications (제목 속의 연도...
    Date2009.08.12 Category천문 계산 By창환 Views4225
    Read More
  4. [책]Explanatory Supplement to the Astronomical Almanac

    (책 표지 사진은 구글에서 가져왔습니다.) -제목: Explanatory Supplement to the Astronomical Almanac -저자: P. Kenneth Seidelmann -출판사, 펴낸 날: University Science Books, Revised edition (2005년 8월 15일) -분량: 752쪽 -언어: 영어 -ISBN-10: ...
    Date2009.08.12 Category천문 계산 By창환 Views4961
    Read More
  5. [책]Astronomy with your personal computer

    (책 표지 사진은 구글에서 가져왔습니다.) -제목: Astronomy with your personal computer -저자: Peter Duffett-Smith -출판사, 펴낸 날: Cambridge University Press, 2nd edition (1990년 6월 29일) -분량: 272쪽 -언어: 영어 -ISBN-10: 052138995X -ISBN-...
    Date2009.08.12 Category천문 계산 By창환 Views4183
    Read More
  6. [책]Practical Astronomy with your Calculator

    (책 표지 사진은 구글에서 가져왔습니다.) -제목: Practical Astronomy with your Calculator -저자: Peter Duffett-Smith -출판사, 펴낸 날: Cambridge University Press, 3rd edition (1988년 3월 31일) -분량: 약 200쪽 -언어: 영어 -ISBN-10: 0521356997 ...
    Date2009.08.12 Category천문 계산 By창환 Views4068
    Read More
  7. [책]Astronomical Algorithms

    (책 표지 사진은 구글에서 가져왔습니다.) -제목: Astronomical Algorithms -저자: Jean Meeus -출판사, 펴낸 날: Willmann-Bell, 2nd edition (1998년 12월) -분량: 477쪽 -언어: 영어 -ISBN-10: 0943396611 -ISBN-13: 978-0943396613 이 책은 천문 계산에 ...
    Date2009.08.12 Category천문 계산 By창환 Views6005
    Read More
  8. [책]역법의 원리분석

    -제목: 역법의 원리분석 -저자: 이은성 -출판사, 펴낸 날: 정음사 (1985년 2월 1일 초판 발행) -분량: 444쪽 -언어: 한국어 -ISBN-13: 2005853002988 '역법의 원리분석'은 달력을 만드는 방법에 대하여 포괄적으로 설명하고 있는 책입니다. 달력 제작에 어떤 ...
    Date2009.08.12 Category천문 계산 By창환 Views10608
    Read More
  9. No Image

    IAU2000 장동 모델

    IAU 2000 장동 모델 IAU2000 장동 모델은 국제천문연맹에서 정한 장동 계산식으로 MHB2000 모델에 기반을 두고 있습니다. 수 세기의 범위에서 마이크로초(microarcsecond, μas) 단위의 정밀도를 가지는 IAU2000A 모델과 이보다 조금 낮은 정밀도를 가지지만 항...
    Date2009.08.12 Category천문 계산 By창환 Views5573
    Read More
  10. No Image

    IAU2006 세차 모델

    IAU2006 세차 모델 IAU에서는 2006년에 IAU2000에서 결정한 세차운동 식을 대체할 새로운 세차운동 식을 채택했습니다. 현재 IAU에서는 IAU2000A에서 결정한 세차운동식 대신 2006년에 채택한 새로운 식을 사용할 것을 권하고 있고, 미해군천문대에서는 2009년...
    Date2009.08.12 Category천문 계산 By창환 Views4379
    Read More
  11. No Image

    [소스코드]해와 달의 위치 계산(간단한 방법)

    해와 달의 위치 계산에 쓸 수 있는 함수입니다. 가까운 미래나 과거에 한해 비교적 낮은 정밀도로 해와 달의 위치를 계산할 수 있습니다. 비교적 낮은 정밀도라고 해도 실용상으로 쓰기에는 충분한 정확도를 가집니다(일식, 월식, 엄폐 현상의 계산에는 부적...
    Date2009.08.12 Category천문 계산 By창환 Views6854
    Read More
  12. No Image

    [소스코드]천문 계산용 수학 함수 모음 1

    천문 계산에 필요한 수학 함수를 모아놓은 소스코드입니다. 비주얼베이직 6 또는 MS오피스 2000이상의 VBA에서 쓸 수 있습니다. 이 소스코드에는 삼각함수, 삼각함수의 역함수, 상용로그 계산 함수가 포함되어 있습니다. 앞으로 이 게시판에 올라올 천문 계산...
    Date2009.08.12 Category천문 계산 By창환 Views6326
    Read More
  13. No Image

    각도변환문제 : 도(degree), 시(hour), 라디안(radian)

    이 글은 2009년 4월 15일에 지돌스타님이 쓰신 글입니다. 여기서 다루는 문제는 천문 관련 계산할 때 반드시 숙지하고 있어야할 각도 변환에 관련된 것이다. 매우 기초적인 내용이다. 꼭 천문 계산이 아니더라도 수학계산을 위해 이러한 내용은 잘 알고 있어...
    Date2009.08.12 Category천문 계산 By창환 Views12091
    Read More
  14. No Image

    지구의 세차운동(歲差運動, Precession) 계산하기

    이 글은 2009년 4월 14일에 지돌스타님이 쓰신 글입니다. HTML 제한으로 인해 링크만 걸어놓겠습니다. 틀린부분이나 추가사항이 있다면 언제든지 지적해주세요. ^^ 지구의 세차운동(歲差運動, Precession) 계산하기 첨부파일은 간단하게 만들어본 세차운동 계...
    Date2009.08.12 Category천문 계산 By창환 Views5768
    Read More
  15. No Image

    시간에 관해(ΔT)

    이 글은 2009년 4월 10일에 지돌스타님이 쓴 글입니다. 안녕하세요 김창환님. 좋은 프로그램 예전 부터 너무 잘 보고 있고 올라오는 자료도 매우 흥미롭습니다. 질문이 있어서 글을 적습니다. 제가 요즘 천문계산에 대해서 제대로 공부를 하려고 합니다. 명확...
    Date2009.08.12 Category천문 계산 By창환 Views9041
    Read More
Board Pagination Prev 1 2 3 4 Next
/ 4
Powered by XE