Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28543 Discussions

Mixed Visual Compaq and Visual Intel dll

ekeom
Novice
250 Views
Dear All,

Im writing a code including Visual Compaq Fortran and Intel Visual Fortran dll. If I want to link Visual Compaq dll, I should use /iface:cvf. But then, the Visual Fortran dll is not linkable! How can I link both dll in the same code.

Best regards,

Didace
0 Kudos
1 Solution
Steven_L_Intel1
Employee
250 Views
Don't use /iface:cvf. Instead, write a module that contains INTERFACE blocks for the routines in the CVF DLL (wouldn't hurt to also have interfaces for the other DLL too.) In the interface, you'll have to use a directive to apply CVF conventions. For example:

[plain]interface
  subroutine sub (a,b,c)
!DEC$ ATTRIBUTES STDCALL,REFERENCE,DECORATE,ALIAS:"SUB" :: sub
  real a,b,c
  end subroutine sub
end interface

[/plain]

In the ALIAS attribute, enter the name of the routine in uppercase.

View solution in original post

0 Kudos
2 Replies
Steven_L_Intel1
Employee
251 Views
Don't use /iface:cvf. Instead, write a module that contains INTERFACE blocks for the routines in the CVF DLL (wouldn't hurt to also have interfaces for the other DLL too.) In the interface, you'll have to use a directive to apply CVF conventions. For example:

[plain]interface
  subroutine sub (a,b,c)
!DEC$ ATTRIBUTES STDCALL,REFERENCE,DECORATE,ALIAS:"SUB" :: sub
  real a,b,c
  end subroutine sub
end interface

[/plain]

In the ALIAS attribute, enter the name of the routine in uppercase.

0 Kudos
ekeom
Novice
250 Views
Don't use /iface:cvf. Instead, write a module that contains INTERFACE blocks for the routines in the CVF DLL (wouldn't hurt to also have interfaces for the other DLL too.) In the interface, you'll have to use a directive to apply CVF conventions. For example:

[plain]interface
subroutine sub (a,b,c)
!DEC$ ATTRIBUTES STDCALL,REFERENCE,DECORATE,ALIAS:"SUB" :: sub
real a,b,c
end subroutine sub
end interface

Thank you very much Steve Lionel, for answer.

Best regards,

Didace


[/plain]

In the ALIAS attribute, enter the name of the routine in uppercase.


0 Kudos
Reply