Exemple avec C++Builder

Discussions on GFL SDK, the graphic library for reading and writing graphic files

Moderators: helmut, XnTriq, xnview

Guest

Exemple avec C++Builder

Post by Guest »

Bonjour,
J'essai de compiler l'exemple avec C++Builder, mais invariablement, je tombe sur les erreurs suivantes:

Code: Select all

  [Lieur Erreur] Unresolved external '_gflLibraryInit' referenced from C:\PROGRAM FILES\GFLSDK\EXAMPLE\01\GFLW_EXAMPLE.OBJ
  [Lieur Erreur] Unresolved external '_gflEnableLZW' referenced from C:\PROGRAM FILES\GFLSDK\EXAMPLE\01\GFLW_EXAMPLE.OBJ
  [Lieur Erreur] Unresolved external '_gflGetFormatInformationByName' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWFORMAT.OBJ
  [Lieur Erreur] Unresolved external '_gflGetFormatInformationByIndex' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWFORMAT.OBJ
  [Lieur Erreur] Unresolved external '_gflFreeFileInformation' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWFILEINFORMATION.OBJ
  [Lieur Erreur] Unresolved external '_gflFreeBitmap' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflGetDefaultLoadParams' referenced from C:\PROGRAM FILES\GFLSDK\EXAMPLE\01\GFLW_EXAMPLE.OBJ
  [Lieur Erreur] Unresolved external '_gflLoadBitmap' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflGetDefaultSaveParams' referenced from C:\PROGRAM FILES\GFLSDK\EXAMPLE\01\GFLW_EXAMPLE.OBJ
  [Lieur Erreur] Unresolved external '_gflSaveBitmap' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflGetErrorString' referenced from C:\PROGRAM FILES\GFLSDK\EXAMPLE\01\GFLW_EXAMPLE.OBJ
  [Lieur Erreur] Unresolved external '_gflAllockBitmapEx' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflAllockBitmap' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflLoadThumbnail' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflResize' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflGetFileInformation' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWFILEINFORMATION.OBJ
  [Lieur Erreur] Unresolved external '_gflGetLabelForColorModel' referenced from C:\PROGRAM FILES\GFLSDK\EXAMPLE\01\GFLW_EXAMPLE.OBJ
  [Lieur Erreur] Unresolved external '_gflChangeColorDepth' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflRotate' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflDrawCircleColor' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflDrawRectangleColor' referenced from C:\PROGRAM FILES\GFLSDK\C++\GFLWBITMAP.OBJ
  [Lieur Erreur] Unresolved external '_gflLibraryExit' referenced from C:\PROGRAM FILES\GFLSDK\EXAMPLE\01\GFLW_EXAMPLE.OBJ
J'ai certainement oublié un lien, malgré mes recherches sur le forum.

Merci
User avatar
xnview
Author of XnView
Posts: 45870
Joined: Mon Oct 13, 2003 7:31 am
Location: France

Re: Exemple avec C++Builder

Post by xnview »

Anonymous wrote:Bonjour,
J'essai de compiler l'exemple avec C++Builder, mais invariablement, je tombe sur les erreurs suivantes:

J'ai certainement oublié un lien, malgré mes recherches sur le forum.

Merci
Avez vous inclus le .lib???
Pierre.
Guest

Post by Guest »

Oui, dans les options du projet j'ai ajouté les chemins "C:\Program Files\GflSDK\bcc" et "C:\Program Files\GflSDK\include"
User avatar
xnview
Author of XnView
Posts: 45870
Joined: Mon Oct 13, 2003 7:31 am
Location: France

Post by xnview »

Anonymous wrote:Oui, dans les options du projet j'ai ajouté les chemins "C:\Program Files\GflSDK\bcc" et "C:\Program Files\GflSDK\include"
Essayez de recréer les .lib à partir des .dll avec les outils de borland.
Pierre.
MaierMan
Posts: 78
Joined: Wed Aug 04, 2004 8:32 pm

Post by MaierMan »

I understand a little French, while I have a hard time to write in that language, hence Ill stick to English. :p

There is a problem in the header files which may cause BC++ to take some wrong defines that declare the calling convention.

The problem is that BC++ for some reason sees:

Code: Select all

#ifdef WIN32 is FALSE
This causes:

Code: Select all

#define GFLAPI
instead (of correct calling convention setting)

Code: Select all

#define GFLAPI __stdcall
Thats whats actually causing the "unresolved externals" errors.
It's incorrectly cdecl here instead of stdcall (cdecl because of extern "C") FWIK.

I (in my final header-files version) replaced:

Code: Select all

#ifdef WIN32
with

Code: Select all

#if defined( WIN32 ) || defined ( __BORLANDC__ )
(3 occurences in libgfl.h and also some in libgfle.h IIRC)

Note for Pierre:
This may cause errors in CBuilderX?
Not sure -> untested.
But when building under linux...
User avatar
xnview
Author of XnView
Posts: 45870
Joined: Mon Oct 13, 2003 7:31 am
Location: France

Post by xnview »

MaierMan wrote:

Code: Select all

#if defined( WIN32 ) || defined ( __BORLANDC__ )
(3 occurences in libgfl.h and also some in libgfle.h IIRC)
Strange, ok i'll fix it
Pierre.