1
char*[]
(문자열 배열)을 허용하는 C/C++ DLL을 만들고 배열의 값을 변경 한 다음 돌아옵니다. Fortran에서 C/C++ DLL로 문자열 배열을 전달하고 변경된 값으로 배열을 가져옵니다.
int doubleijk_(char* data[]) // what should be the return type ???
{
// code to change array elements
return 0;
}
: 나는 포트란에서 문자열, 정수를 통과 할 수 있어요
module variables
type string
character(len=:), allocatable :: str
end type string
end module variables
program Call_CPP
use variables
type(string) :: array(3)
array = [string('xyza'), string('abcd'), string('mnopqrs')]
INTERFACE
! How to write SUBROUTINE for array
SUBROUTINE doubleijk_(arr) BIND(C,NAME='doubleijk_')
!???????WHAT SHOULD BE SUBROUTINE FOR ARRAY OF STRINGS????????
END SUBROUTINE doubleijk_
END INTERFACE
! Body of Call_CPP
call doubleijk_(array)
! print values of array after call
end program Call_CPP
및 C/C++에서 값이 변경되었습니다. 내가 필요한 건 Fortran에서 C/C++로 문자열 배열을 전달하고 변경된 값으로 배열을 되 찾는 것입니다. 어떻게해야합니까?
당신은 포트란에 "문자열 배열"이 없습니다. 'string'이라는 파생 된 타입의 배열을 가지고 있습니다. – francescalus
@francescalus 달성 가능한가 ?? 배열을 전달하는 올바른 방법은 무엇입니까 ?? – techie
[이 질문] (https://stackoverflow.com/q/9686532/3157076)을 보았습니까? – francescalus