본문 바로가기

프로그래밍/리서치결과

포트란에서 C/C++ 함수 읽기 예제


구글에서 검색했을때의 
http://webcache.googleusercontent.com/search?q=cache:s1h1SuUcDnMJ:www.tek-tips.com/viewthread.cfm%3Fqid%3D1555223%26page%3D10+fortran+int+__stdcall+CR2(int+*)%3B&cd=1&hl=ko&ct=clnk&gl=kr

__stdin을 __declspec(dllexport)로 바꾸니까 잘된다.
C/C++ 환경에서 다음을 작성(DLL용 프로젝트로..)

#include "stdio.h"

extern "C"
{
    void __declspec(dllexport) TEST(); 
    void __declspec(dllexport) TEST2(int* pn); 
}
void __declspec(dllexport) TEST()
{
    printf("포트란에서 C/C++ 함수 읽기\n");
}

void __declspec(dllexport) TEST2(int* pn)
{
    printf("인자값은 %d\n", *pn);
}

요정도로 맞추고 돌리면 dll, lib가 나올테고

포트란 기본메인에서 부르면 땡이겠지만, 포트란에서 lib가 나온 라이브러리 링크를 걸어주면 되겠다.

그리고 
    program fortran_use_dll

    implicit none

    ! Variables
    INTEGER  N
    N = 10
    ! Body of fortran_use_dll
    print *, 'Hello World'
    CALL TEST
    
    CALL TEST2(N)

    end program fortran_use_dll

이렇게 해주면 뭐 대충나오더라.. 테스트끝