Building DLLs with Compaq Visual Fortran and Intel Visual Fortran 
Author Message
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran

Dear all,

I have lately decided to upgrade from (CVF) Compaq Visual fortran 6.6 to
(IVF) Intel Visual Fortran 8.1
My main task is CFD where I usually built "user-subroutines" in the form of
a user.dll file which the commercial solver can use and thus implements my
models.
Up till now everything worked fine with CVF. I tried to compile and link an
already used library with IVF. I have used exactly the same compiler and
linker switches with the exception of /iface:cvf and IVF produced the dll
with no errors. However, the solver just hangs ...
I thought about checking the "contents" of the 2 dll files, which are as
follows:

(CVF)
----------------------------------------------------------------------------------------------------------------------------------------
Dump of file ubound.dll

File Type: DLL

  Section contains the following exports for ubound.dll

    00000000 characteristics
    4200DDD4 time date stamp Wed Feb 02 15:04:04 2005
        0.00 version
           1 ordinal base
           6 number of functions
           6 number of names

    ordinal hint RVA      name

          1    0 00009EC8 UBOUND
          3    1 000094C0 UEXE
          5    2 000096A2 ULIB_CHECK_VERSION



  Summary

        1000 .data
        4000 .rdata
        2000 .reloc
        A000 .text
-------------------------------------------------------------------------------------------------------------------------------------------
and
(IVF)
--------------------------------------------------------------------------------------------------------------------------------------------
Dump of file ubound.dll

File Type: DLL

  Section contains the following exports for ubound.dll

    00000000 characteristics
    4200E4BA time date stamp Wed Feb 02 15:33:30 2005
        0.00 version
           1 ordinal base
           3 number of functions
           3 number of names

    ordinal hint RVA      name




  Summary

        1000 .data
        1000 .data1
        6000 .rdata
        2000 .reloc
        A000 .text
---------------------------------------------------------------------------------------------------------------------------------------

I CANNOT HELP NOTICING THE RESEMBLANCE and definately don't understand the
difference!!! However, I know nothing about dlls and have no idea how to
resolve this issue. Any suggestions would be deeply appreciated.

Vangelis



Mon, 23 Jul 2007 01:48:26 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran
Why not show the !DEC metacommands that DLLEXPORT?
On the face of it your CVF DLL has a .def and more but your IVF DLL
doesn't. What gives?

--
You're Welcome,
Gerry T.
______
"Facts are meaningless. You could use facts to prove anything that's even
remotely true." -- Homer Simpson.



Quote:
> Dear all,

> I have lately decided to upgrade from (CVF) Compaq Visual Fortran 6.6 to
> (IVF) Intel Visual Fortran 8.1
> My main task is CFD where I usually built "user-subroutines" in the form
of
> a user.dll file which the commercial solver can use and thus implements
my
> models.
> Up till now everything worked fine with CVF. I tried to compile and link
an
> already used library with IVF. I have used exactly the same compiler and
> linker switches with the exception of /iface:cvf and IVF produced the dll
> with no errors. However, the solver just hangs ...
> I thought about checking the "contents" of the 2 dll files, which are as
> follows:

> (CVF)
> -------------------------------------------------------------------------

---------------------------------------------------------------

- Show quoted text -

Quote:
> Dump of file ubound.dll

> File Type: DLL

>   Section contains the following exports for ubound.dll

>     00000000 characteristics
>     4200DDD4 time date stamp Wed Feb 02 15:04:04 2005
>         0.00 version
>            1 ordinal base
>            6 number of functions
>            6 number of names

>     ordinal hint RVA      name

>           1    0 00009EC8 UBOUND
>           3    1 000094C0 UEXE
>           5    2 000096A2 ULIB_CHECK_VERSION



>   Summary

>         1000 .data
>         4000 .rdata
>         2000 .reloc
>         A000 .text
> -------------------------------------------------------------------------

------------------------------------------------------------------
Quote:
> and
> (IVF)
> -------------------------------------------------------------------------

-------------------------------------------------------------------

- Show quoted text -

Quote:
> Dump of file ubound.dll

> File Type: DLL

>   Section contains the following exports for ubound.dll

>     00000000 characteristics
>     4200E4BA time date stamp Wed Feb 02 15:33:30 2005
>         0.00 version
>            1 ordinal base
>            3 number of functions
>            3 number of names

>     ordinal hint RVA      name




>   Summary

>         1000 .data
>         1000 .data1
>         6000 .rdata
>         2000 .reloc
>         A000 .text
> -------------------------------------------------------------------------

--------------------------------------------------------------

- Show quoted text -

Quote:

> I CANNOT HELP NOTICING THE RESEMBLANCE and definately don't understand
the
> difference!!! However, I know nothing about dlls and have no idea how to
> resolve this issue. Any suggestions would be deeply appreciated.

> Vangelis



Wed, 25 Jul 2007 17:14:57 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran
"Evangelos Boutsianis" wrote

Quote:

> I have lately decided to upgrade from (CVF) Compaq Visual Fortran 6.6 to
> (IVF) Intel Visual Fortran 8.1

Sorry, as you have discovered to your own detriment, you have upgraded
in chronological sense only - IVF is in no way, shape or form an upgrade
from the CVF compiler.

If it still matters, dll diffs you're seeing are probably due to a
change in calling conventions - a misguided attempt to cut out their
turf from the CVF user base.



Thu, 26 Jul 2007 08:24:31 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran


Quote:
> "Evangelos Boutsianis" wrote

> > I have lately decided to upgrade from (CVF) Compaq Visual Fortran 6.6
to
> > (IVF) Intel Visual Fortran 8.1

> Sorry, as you have discovered to your own detriment, you have upgraded
> in chronological sense only - IVF is in no way, shape or form an upgrade
> from the CVF compiler.

> If it still matters, dll diffs you're seeing are probably due to a
> change in calling conventions - a misguided attempt to cut out their
> turf from the CVF user base.

Agreed: IVF is a major downgrade wrt CVF. I've previously expounded here
and on the Intel IVF forum (where they're not so naive as to dismiss user
criticisms as the outburst of one who doesn't comply with the drug-pushing
prescriptions of the c.l.f. unqualified) on IVF's inadequacies vis-a-vis
CVF and after two years of floundering, IVF has yet to measure up to the
competition, the unsupported Microsoft (Digital (Compaq) ) VF (MSVF).

Not even Microsoft would be so malicious as to change the default calling
convention between their former (sic MSVF) Fortran 90/95 and current C++
compilers. Intel did so, with apparent impunity. Well, we'll see!

It's been standard CVF support recommendation that .lib generation and
distribution be favored over the use of a .def. This is poor advise which
MSVF never promoted.

--
You're Welcome,
Gerry T.
______
 "I promise there will be fewer nuclear disasters with me as your mayor
than with me as your nuclear safety inspector."  Homer Simpson



Thu, 26 Jul 2007 12:17:27 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran

<snip>

Quote:
> It's been standard CVF support recommendation that .lib generation and
> distribution be favored over the use of a .def. This is poor advise which
> MSVF never promoted.

"advice", not "advise". You under-educated arse-fart.


Fri, 27 Jul 2007 04:01:16 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran
PLEASE don't argue with Gerry Thomas. We are unable to grasp his
profound insights, and provoking further comment from him wastes his
time and ours.

"Never wrestle with a pig. You both get dirty and the pig likes it."



Fri, 27 Jul 2007 04:13:22 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran
Let me try to give you the information that might be missing. In both
attempts I have used the same source file that
includes the following:

 SUBROUTINE ubound(bc_index, var_index, face_index, xfc, yfc, zfc)
 !DEC$ ATTRIBUTES DLLEXPORT :: ubound

Should I change something here?

Vangelis



Quote:
> Why not show the !DEC metacommands that DLLEXPORT?
> On the face of it your CVF DLL has a .def and more but your IVF DLL
> doesn't. What gives?

> --
> You're Welcome,
> Gerry T.
> ______
> "Facts are meaningless. You could use facts to prove anything that's even
> remotely true." -- Homer Simpson.



>> Dear all,

>> I have lately decided to upgrade from (CVF) Compaq Visual Fortran 6.6 to
>> (IVF) Intel Visual Fortran 8.1
>> My main task is CFD where I usually built "user-subroutines" in the form
> of
>> a user.dll file which the commercial solver can use and thus implements
> my
>> models.
>> Up till now everything worked fine with CVF. I tried to compile and link
> an
>> already used library with IVF. I have used exactly the same compiler and
>> linker switches with the exception of /iface:cvf and IVF produced the dll
>> with no errors. However, the solver just hangs ...
>> I thought about checking the "contents" of the 2 dll files, which are as
>> follows:

>> (CVF)
>> -------------------------------------------------------------------------
> ---------------------------------------------------------------
>> Dump of file ubound.dll

>> File Type: DLL

>>   Section contains the following exports for ubound.dll

>>     00000000 characteristics
>>     4200DDD4 time date stamp Wed Feb 02 15:04:04 2005
>>         0.00 version
>>            1 ordinal base
>>            6 number of functions
>>            6 number of names

>>     ordinal hint RVA      name

>>           1    0 00009EC8 UBOUND
>>           3    1 000094C0 UEXE
>>           5    2 000096A2 ULIB_CHECK_VERSION



>>   Summary

>>         1000 .data
>>         4000 .rdata
>>         2000 .reloc
>>         A000 .text
>> -------------------------------------------------------------------------
> ------------------------------------------------------------------
>> and
>> (IVF)
>> -------------------------------------------------------------------------
> -------------------------------------------------------------------
>> Dump of file ubound.dll

>> File Type: DLL

>>   Section contains the following exports for ubound.dll

>>     00000000 characteristics
>>     4200E4BA time date stamp Wed Feb 02 15:33:30 2005
>>         0.00 version
>>            1 ordinal base
>>            3 number of functions
>>            3 number of names

>>     ordinal hint RVA      name




>>   Summary

>>         1000 .data
>>         1000 .data1
>>         6000 .rdata
>>         2000 .reloc
>>         A000 .text
>> -------------------------------------------------------------------------
> --------------------------------------------------------------

>> I CANNOT HELP NOTICING THE RESEMBLANCE and definately don't understand
> the
>> difference!!! However, I know nothing about dlls and have no idea how to
>> resolve this issue. Any suggestions would be deeply appreciated.

>> Vangelis



Fri, 27 Jul 2007 06:47:07 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran

Quote:

> PLEASE don't argue with Gerry Thomas. We are unable to grasp his
> profound insights, and provoking further comment from him wastes his
> time and ours.

> "Never wrestle with a pig. You both get dirty and the pig likes it."

Agreed, but sometimes you have to stand up to a bully. Just killfile me,
and I'll get on with harassing him out-of-sight.


Fri, 27 Jul 2007 07:39:04 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran

Quote:

>Agreed, but sometimes you have to stand up to a bully.

This is just Usenet... we call them kooks. You don't have to bother.
If you do, killfiling you isn't enough, because 3rd parties will get
drawn in.

-- greg



Fri, 27 Jul 2007 07:56:08 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran



Quote:
> Let me try to give you the information that might be missing. In both
> attempts I have used the same source file that
> includes the following:

>  SUBROUTINE ubound(bc_index, var_index, face_index, xfc, yfc, zfc)
>  !DEC$ ATTRIBUTES DLLEXPORT :: ubound

> Should I change something here?

Try:

SUBROUTINE ubound [STDCALL, ALIAS:'_UBOUND'] (bc_index, var_index,
face_index, xfc, yfc, zfc)
implicit none
integer(4)  :: bc_index[REFERENCE], var_index[REFERENCE],
face_index[REFERENCE]
real(8) :: xfc[REFERENCE], yfc[REFERENCE], zfc[REFERENCE]

(ditto for the other exports. If any arguments are arrays, append the dims
to [REFERENCE], ie, [REFERENCE] (dims) )

Your .def file would look like:

;DEF file
LIBRARY
EXPORTS
;  Function    Ordinal
;       --------    -------
;F95 exports



When you dumpbin/exports you'll see:

1    0 00009EC8 ubound
2    1 000094C0 uexe
3    2 000096A2 ulib_check_version

--
HTH,
Gerry T.
______
"Some of those writing letters to this program are slightly fictitious but
others definitely are not." --{*filter*} Cavett, host of The Detroit Symphony
Orchestra, PBS Radio.



Fri, 27 Jul 2007 08:06:40 GMT  
 Building DLLs with Compaq Visual Fortran and Intel Visual Fortran

Quote:

>If it still matters, dll diffs you're seeing are probably due to a
>change in calling conventions - a misguided attempt to cut out their
>turf from the CVF user base.

The change in calling conventions was to improve compatibility with "the rest
of the world".  In hindsight, we should have made that change when we brought
out DVF in 1997.  The STDCALL default has been nothing but a headache for us
and our customers over the years.

Nevertheless, Intel Visual Fortran offers an /iface:cvf option, which is
applied by default when you convert a project, that keeps the defaults the
same as CVF.  So there should not be problems in this regard.

Steve Lionel
Software Products Division
Intel Corporation
Nashua, NH

User communities for Intel Software Development Products
  http://softwareforums.intel.com/
Intel Fortran Support
  http://developer.intel.com/software/products/support/



Sat, 28 Jul 2007 00:14:36 GMT  
 
 [ 11 post ] 

 Relevant Pages 

1. Creating - Fortran 77 dll for use in Visual Basic 6.0 (not using Compaq Visual Fortran)

2. Compaq Visual Fortran or Intel Fortran Compiler?

3. Difference between Intel Visual Fortran and Compaq VF

4. Mixing Compaq Visual Fortran 6 with Microsoft Visual C++ .NET

5. Question on using Compaq Visual FORTRAN with Microsoft Visual C++ 6.0

6. Compaq Visual Fortran VB6 dll

7. using Intel Visual Fortran with Visual C++ 2005 Express

8. Compaq visual fortran and Watcom fortran

9. Linking to a DLL in Intel Visual Fortran

10. compag visual fortran dll callable from visual basic 6

11. makefile from linux lahey fortran to intel visual fortran on windows

12. Compaq Visual Fortran discontinued: upgrade to Intel Visual Fortran?

 

 
Powered by phpBB® Forum Software