Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

integertorgb in win32

tropfen
New Contributor I
605 Views
Hello,

i am trying to use the subroutine integertorgb in a win32 program.

based on the description i am using the following
[bash]....
use ifqwin

integer :: ir,ig,ib
 
 CALL INTEGERTORGB(2456, ir,ig,ib)

....[/bash]

all what i get is:

error LNK2019: Verweis auf nicht aufgelstes externes Symbol "_INTEGERTORGB" in Funktion "_MODUL_FARBSKALEN_mp_XDLG_AENDERUNG_FARBE".


what i am doing wrong?

i also changed use ifqwin to ifwin, no difference

Thanks in advance

Frank
0 Kudos
5 Replies
anthonyrichards
New Contributor III
605 Views
Try USE IFLIB or USE DFLIB.
0 Kudos
tropfen
New Contributor I
605 Views
no change with dflib

new error with iflib (error #7002: Error in opening the compiled module file. Check INCLUDE paths. [IFLIB])

The programm is based on IVF 11.1.048 and Xeffort , VS2008

allready used use statements:

xft, iflogm, ifwin, ifwinty, ifport, user32

Frank
0 Kudos
mecej4
Honored Contributor III
605 Views
See your documentation or use Google/Yahoo/..

USE IFQWIN

was correct. Documented here.

[EDITED above, this line added later:] To compile, use the /libs:qwin option.
0 Kudos
tropfen
New Contributor I
605 Views
hello mecej4

thats what i used (shown on top , my example is based on the documentation, only minor changes)

but i get an error (lnk 2019)

Frank

0 Kudos
anthonyrichards
New Contributor III
605 Views
Have you set your project up as a QuickWin project?
If you have not, then I suspect the correct Quickwin Library containing the procedure will not be searched and so INTEGERTORGB will not be found. Make sure the relevant library is specified to be searched during the link step.

In my version of IVF XE Composer, the interface for INTEGERTORGB is in module IFQWIN, as follows:

SUBROUTINE INTEGERTORGB (RGB,RED, GREEN, BLUE)
!DEC$ ATTRIBUTES DEFAULT :: INTEGERTORGB
!DEC$ ATTRIBUTES DECORATE,C,ALIAS:"_integertorgb" :: INTEGERTORGB
INTEGER*4 RGB
INTEGER*4 RED
!DEC$ ATTRIBUTES REFERENCE :: RED
INTEGER*4 GREEN
!DEC$ ATTRIBUTES REFERENCE :: GREEN
INTEGER*4 BLUE
!DEC$ ATTRIBUTES REFERENCE :: BLUE
END SUBROUTINE
END INTERFACE

Howwever, a DUMPBIN /EXPORTS on IFQWIN.LIB shows the following:

03D 00000000 SECT10 notype () External | __rgbtointeger
03E 00000000 SECT11 notype Static | .text
Section length 30, #relocs 0, #linenums 0, checksum 0, selection 1 (pick no duplicates)
040 00000000 SECT11 notype () External | __integertorgb
041 00000000 UNDEF notype External | __fltused

So the symbol you want is __integertorgb, which has TWO leading underscores and is not decorated with @16!
You need to link to IFQWIN.LIB to find it
0 Kudos
Reply