- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I've compiled a dll with Intel MPI libs (Package ID: w_mpi_p_4.0.1.007, Package Contents: Intel MPI Library 4.0 Update 1 for Windows* OS) and Intel Visual Fortran Compiler Professional for applications running on IA-32, Version 11.1 , Build 20100806 Package ID: w_cprof_p_11.1.067.
To get this to work, iface:cvf must be "off".
However, I need to include the files generated from this compilation in the compilation of another dll which will not compile unless iface:cvf is active. This second dll is comprised of source files and object files provided by another company and I cannot change any of the compiler options they've told me to use or the second dll won't compile.
Does anyone have any ideas on how I can get around this, I have to get it to work somehow?
Any help would be much appreciated!
Cathleen
I've compiled a dll with Intel MPI libs (Package ID: w_mpi_p_4.0.1.007, Package Contents: Intel MPI Library 4.0 Update 1 for Windows* OS) and Intel Visual Fortran Compiler Professional for applications running on IA-32, Version 11.1 , Build 20100806 Package ID: w_cprof_p_11.1.067.
To get this to work, iface:cvf must be "off".
However, I need to include the files generated from this compilation in the compilation of another dll which will not compile unless iface:cvf is active. This second dll is comprised of source files and object files provided by another company and I cannot change any of the compiler options they've told me to use or the second dll won't compile.
Does anyone have any ideas on how I can get around this, I have to get it to work somehow?
Any help would be much appreciated!
Cathleen
Link Copied
5 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You can use !DEC$ ATTRIBUTES to specify all behaviors implied by /iface:cvf, and I encourage you to do so. Basically it's:
!DEC$ ATTRIBUTES STDCALL,REFERENCE,MIXED_STR_LEN_ARG,DECORATE,ALIAS:"SUBNAME" :: subname
!DEC$ ATTRIBUTES STDCALL,REFERENCE,MIXED_STR_LEN_ARG,DECORATE,ALIAS:"SUBNAME" :: subname
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks for your help but I'm afraid that didn't work, I get the message
error LNK2019: unresolved external symbol _DarsEsm@112 referenced in function
_ENGCOMBUSER EngCylinder_Combustion.obj
where DarsEsm is my routine (that has all the attributes) and EngCylinder _Combustion is the external source file in which I'm trying to call DarsEsm.
Any other ideas?
error LNK2019: unresolved external symbol _DarsEsm@112 referenced in function
_ENGCOMBUSER EngCylinder_Combustion.obj
where DarsEsm is my routine (that has all the attributes) and EngCylinder _Combustion is the external source file in which I'm trying to call DarsEsm.
Any other ideas?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting cathleenmcguiness
Thanks for your help but I'm afraid that didn't work, I get the message
error LNK2019: unresolved external symbol _DarsEsm@112 referenced in function
_ENGCOMBUSER EngCylinder_Combustion.obj
where DarsEsm is my routine (that has all the attributes) and EngCylinder _Combustion is the external source file in which I'm trying to call DarsEsm.
Any other ideas?
error LNK2019: unresolved external symbol _DarsEsm@112 referenced in function
_ENGCOMBUSER EngCylinder_Combustion.obj
where DarsEsm is my routine (that has all the attributes) and EngCylinder _Combustion is the external source file in which I'm trying to call DarsEsm.
Any other ideas?
The ALIAS:"SUBNAME" must match the name as exported from the Dll. You can verify what you are actually exporting from the dll using DUMPBIN command-line tool, or better still, Dependency Walker.
If you do not use the DECORATE+ALIAS in the dll, you don't need it in the caller either -- remove them from the inteface in the calling routine, and it should just work.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Okay, I had to move some stuff around and do a little dummy wrapper but it appears to run properly now.
Thanks!
Thanks!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You do need DECORATE and ALIAS because STDCALL, by itself, downcases the routine name.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page