Page 1 of 1

Error after update for FWH 7.11

PostPosted: Fri Nov 30, 2007 12:41 am
by vilian
Hi,

Error: Unresolved external 'AdsCloseCachedTables' referenced from C:\XHARBOUR\LIB\RDDADS.LIB|adsfunc


Sds,
Vilian F. Arraes

PostPosted: Fri Nov 30, 2007 1:35 am
by Antonio Linares
Vilian,

From http://www.xharbour.org/index.asp?page=news/20050324:

# Added AdsCacheOpenTables() and AdsCacheOpenCursors() function. (for all versions Ads) and AdsCloseCachedTables() for Ads 7.x and above. ADS_REQUIRE_VERSION 7 must be set for the last function

# Allow setting of ADS_REQUIRE_VERSION using compiler command line switch

PostPosted: Fri Nov 30, 2007 1:58 am
by vilian
Antonio,

I did not understand. Not use AdsCloseCachedTables() in my system.

PostPosted: Fri Nov 30, 2007 8:58 am
by Antonio Linares
Vilian,

As a workaround try to add this code to your main PRG:
Code: Select all  Expand view
#pragma BEGINDUMP

void AdsCloseCachedTables( void ) {}

#pragma ENDDUMP

PostPosted: Fri Nov 30, 2007 11:30 am
by vilian
Antonio,

Unhappyly it did not decide the problem.

PostPosted: Fri Nov 30, 2007 2:07 pm
by James Bott
Vilian,

If you are not using ADS, then there are two libs you should not be linking into you app. RDDADS.LIB and ACE32.LIB.

James

PostPosted: Fri Nov 30, 2007 3:40 pm
by Antonio Linares
Vilian,

> Unhappyly it did not decide the problem.

Do you get the same error ?

PostPosted: Fri Nov 30, 2007 5:44 pm
by vilian
Antonio,

The error message is the same one:

Code: Select all  Expand view
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'AdsCloseCachedTables' referenced from C:\XHB\LIB\RDDADS.LIB|adsfunc


One will detail interesting that I observed is that in the installation of xHarbour that comes with FWH 7.11 does not have the Ace32.lib archive.

PostPosted: Fri Nov 30, 2007 7:57 pm
by Antonio Linares
Vilian,

> does not have the Ace32.lib archive

Thats because you have to create that library yourself from the used ACE32.dll:

implib.exe Ace32.lib Ace32.dll

PostPosted: Fri Nov 30, 2007 8:03 pm
by Antonio Linares
Vilian,

Try it this way:
Code: Select all  Expand view
#pragma BEGINDUMP

#include <windows.h>

void pascal AdsCloseCachedTables( void )
{
   MessageBox( 0, "inside AdsCloseCachedTables", "ok", 0 );
}

#pragma ENDDUMP

PostPosted: Fri Nov 30, 2007 9:39 pm
by vilian
Antonio,

Now it´s fine. Thank you

PostPosted: Fri Dec 07, 2007 6:44 am
by hua
Antonio Linares wrote:
Try it this way:
Code: Select all  Expand view
#pragma BEGINDUMP

#include <windows.h>

void pascal AdsCloseCachedTables( void )
{
   MessageBox( 0, "inside AdsCloseCachedTables", "ok", 0 );
}

#pragma ENDDUMP


When I got this error, initially I just try to create a stub function
Code: Select all  Expand view
function AdsCLoseCachedTables()
return nil


But that didn't solve the problem. Only after putting in Antonio's code above does it links with no error. Out of curiousity, why is it so?

Ok, back to play with 7.12 :)

PostPosted: Fri Dec 07, 2007 7:02 am
by Antonio Linares
> Out of curiousity, why is it so?

Because the linker is requiring a C level function, not a PRG level one :-)