|
Visual Studio 계열의 DF(Digital Fortran)을 정적라이브러리로 로드 할수 없다기에 fortran dll을 만들어서 LoadLibrary를 할려고 합니다. 한데 문제가 있습니다. [C++ Error] Unit1.cpp(18): E2277 Lvalue required 란 에러가 납니다. 그리고 다음과 같이 만든것이 맞는지 모르겠습니다. 도와주세요. 어떻게 고치면 될까요? 둘다 잘못만든건가요? 참고로 fortran은 컴파일 됐습니다. 아시는분 정확하게 어떻게 하면 fortran subroutine을 부를수 있는지 알려주세요. 감사합니다.
Fortran(mydll.dll):
SUBROUTINE ARRAYTEST(arr)
!MS$ATTRIBUTES DLLEXPORT :: ARRAYTEST
REAL(4) arr(3, 7)
INTEGER i, j
DO i = 1, 3
DO j = 1, 7
arr (i, j) = 11.0 * i + j
END DO
END DO
END SUBROUTINE
Borland(???.exe) :
int main(int argc, char* argv[])
{
float a[4][8];
void(__stdcall arrytest)();
HINSTANCE hinst;
hinst = LoadLibrary("mydll.dll");
arrytest = (void (__stdcall*)()) GetProcAddress(hinst, "ARRTEST");
arrytest();
FreeLibrary(hinst);
}
|