Page 1 of 1

FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Sun Sep 08, 2024 7:06 pm
by Jimmy
hi

i try to use BCC770 and FWH 24.07 to recompile my APPS but have Problem, with UUID.LIB
Turbo Incremental Link 6.97 Copyright (c) 1997-2022 Embarcadero Technologies, Inc.
Fatal: Unable to open file 'UUID.LIB'
my *.MAK file

Code: Select all | Expand

HBDIR=c:\harbour
BCDIR=c:\BCC770
FWDIR=c:\fwh
it will be linked this Way

Code: Select all | Expand

echo c:\BCC770\lib\uuid.lib + >> b32.bc
and it is in
Directory c:\BCC770\lib
19.03.2015 06:55 2.048 uuid.lib
how to fix the Problem :?:

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Mon Sep 09, 2024 12:54 am
by nageswaragunupudi
Try

Code: Select all | Expand

cd\fwh\samples
buildh tutor01
Do you still get the same problem?

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Mon Sep 09, 2024 4:52 am
by Jimmy
hi,

Code: Select all | Expand

cd\fwh\samples
buildh tutor01
than i got
Compiling...
tutor01.prg(3) Error F0029 Can't open #include file 'FiveWin.ch'
Harbour 3.2.0dev (r2008190002)
Copyright (c) 1999-2020, https://harbour.github.io/
Compiling 'tutor01.prg' and generating preprocessed output to 'tutor01.ppo'...
* Compile errors *
my Environment are

Code: Select all | Expand

c:\fwh\samples>set
BCDIR=c:\bcc770
FWDIR=C:\FWH
HBDIR=C:\HARBOUR
hdir=C:\HARBOUR
hdirl=C:\HARBOUR\lib\win\bcc
all Directory exist

when i try to use64 Bit Version and build64.bat use

Code: Select all | Expand

echo %hdirl%\hbwin.a + >> b64.bc
which is IHMO wrong Extension as *.A is for MingGW and Extension for BCC is *.LIB

only MSVC

Code: Select all | Expand

buildh64.bat Tutor01
seems to work

but using my Project with

Code: Select all | Expand

call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
c:\harbour64\bin\win\msvc64\hbmk2 dualgrid.hbp -comp=msvc64
still fail with
FiveH64.lib(window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_SetWindowTheme" in Funktion "HB_FUN__SETWINDOWTHEME".
DUALGRID.exe : fatal error LNK1120: 1 nicht aufgelöste Externe

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Mon Sep 09, 2024 6:20 am
by Jimmy
hi
here a full Sample which produce Error "unknown function(s): _SETWINDOWTHEME()"

Code: Select all | Expand

#include "FIVEWIN.ch"
#include "common.ch"

PROCEDURE MAIN()
LOCAL oDlg, oListbox
LOCAL cDrive  := SPACE( 2 )
LOCAL cTitle  := "Please, select"
LOCAL aDrives := aDrives()

LOCAL bSetGet      := { | x | cDrive := x }
LOCAL bChange
LOCAL bValid
LOCAL bLDblClicked
LOCAL bWhen
LOCAL bDrawItem

alert(FWVERSION + HB_EOL())
   DEFINE DIALOG oDlg FROM 5, 10 TO 24, 55 TITLE cTitle

      oListbox := TListBox() :New( 10, 20, bSetGet, aDrives, 145, 95, bChange, ;
                             oDlg, bValid,,, .T., .F., ;
                             bLDblClicked,, "", .T., bWhen,, ;
                             bDrawItem, .F., .F. )

      @  7,  7 BUTTON "&OK" OF oDlg SIZE 40, 12 ;
             ACTION( USBeject( cDrive ), oDlg:End() ) DEFAULT

      @  7, 17 BUTTON "&Cancel" OF oDlg SIZE 40, 12 ;
              ACTION( cDrive := nil, oDlg:End() )

#IFDEF __HMG__
   END DIALOG
#ENDIF

   ACTIVATE DIALOG oDlg CENTERED

RETURN

STATIC PROCEDURE USBeject(cDriveLetter )
   IF EjectRemovable( cDriveLetter )
      MsgInfo( "The Drive " + cDriveLetter + " Can be Safely Removed", "Atenttion ! , Remove USB Ok" )
   ELSE
      MsgInfo( "Failed to Safely Remove/Eject Drive " + cDriveLetter , "Atenttion ! , Failed Remove USB" )
   ENDIF
RETURN
*+ EOF: FWEJECT.PRG

Code: Select all | Expand

#pragma begindump

#include <windows.h>
#include <winioctl.h>
#include <tchar.h>
#include <stdio.h>
#include "hbapi.h"
#include "hbapifs.h"

// Prototypes
BOOL EjectVolume(TCHAR cDriveLetter);
HANDLE OpenVolume(TCHAR cDriveLetter);
BOOL LockVolume(HANDLE hVolume);
BOOL DismountVolume(HANDLE hVolume);
BOOL PreventRemovalOfVolume(HANDLE hVolume, BOOL fPrevent);
BOOL AutoEjectVolume(HANDLE hVolume);
BOOL CloseVolume(HANDLE hVolume);

LPTSTR szVolumeFormat = TEXT("\\\\.\\%c:");
LPTSTR szRootFormat = TEXT("%c:\\");

HANDLE OpenVolume(TCHAR cDriveLetter)
{
   HANDLE hVolume;
   UINT uDriveType;
   TCHAR szVolumeName[8];
   TCHAR szRootName[5];
   DWORD dwAccessFlags;

   wsprintf(szRootName, szRootFormat, cDriveLetter);
   uDriveType = GetDriveType(szRootName);

   switch(uDriveType)
   {
   case DRIVE_REMOVABLE:
     dwAccessFlags = GENERIC_READ | GENERIC_WRITE;
     break;
   case DRIVE_CDROM:
     dwAccessFlags = GENERIC_READ;
     break;
   default:
     return INVALID_HANDLE_VALUE;
   }

   wsprintf(szVolumeName, szVolumeFormat, cDriveLetter);

   hVolume = CreateFile( szVolumeName,
                         dwAccessFlags,
                         FILE_SHARE_READ | FILE_SHARE_WRITE,
                         NULL,
                         OPEN_EXISTING,
                         0,
                         NULL );
   return hVolume;
}

BOOL CloseVolume(HANDLE hVolume)
{
   return CloseHandle(hVolume);
}

#define LOCK_TIMEOUT        10000       // 10 Seconds
#define LOCK_RETRIES        20

BOOL LockVolume( HANDLE hVolume )
{
   DWORD dwBytesReturned;
   DWORD dwSleepAmount;
   int nTryCount;

   dwSleepAmount = LOCK_TIMEOUT / LOCK_RETRIES;

   for( nTryCount = 0; nTryCount < LOCK_RETRIES; nTryCount++ )
   {
     if( DeviceIoControl( hVolume, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0,
                          &dwBytesReturned, NULL ) )
         return TRUE;

     Sleep( dwSleepAmount );
   }

   return FALSE;
}

BOOL DismountVolume( HANDLE hVolume )
{
   DWORD dwBytesReturned;
   return DeviceIoControl( hVolume, FSCTL_DISMOUNT_VOLUME, NULL, 0, NULL, 0,
                           &dwBytesReturned, NULL );
}

BOOL PreventRemovalOfVolume(HANDLE hVolume, BOOL fPreventRemoval)
{
   DWORD dwBytesReturned;
   PREVENT_MEDIA_REMOVAL PMRBuffer;
   PMRBuffer.PreventMediaRemoval = fPreventRemoval;
   return DeviceIoControl( hVolume, IOCTL_STORAGE_MEDIA_REMOVAL,
                           &PMRBuffer, sizeof(PREVENT_MEDIA_REMOVAL),
                           NULL, 0, &dwBytesReturned, NULL );
}

AutoEjectVolume( HANDLE hVolume )
{
   DWORD dwBytesReturned;
   return DeviceIoControl( hVolume, IOCTL_STORAGE_EJECT_MEDIA, NULL, 0, NULL, 0,
                         &dwBytesReturned,
                         NULL );
}

BOOL EjectVolume( TCHAR cDriveLetter )
{
   HANDLE hVolume;
   BOOL fRemoveSafely ; //  = FALSE;
   BOOL fAutoEject    ; //  = FALSE;

   hVolume = OpenVolume(cDriveLetter);
   if( hVolume == INVALID_HANDLE_VALUE )
     return FALSE;

   if( LockVolume(hVolume) && DismountVolume(hVolume) )
     fRemoveSafely = TRUE;
   {
     if (PreventRemovalOfVolume(hVolume, FALSE) && AutoEjectVolume(hVolume))
           fAutoEject = TRUE;
   }

   if( ! CloseVolume(hVolume) )
     return FALSE;

   return TRUE;
}

HB_FUNC( EJECTREMOVABLE )
{
   char * szDrive = hb_parc( 1 );
   hb_retl( EjectVolume( ( TCHAR ) *szDrive ) );
   return;
}

#pragma enddump
FWEJECT.HBP

Code: Select all | Expand

-gui
-Ic:\fwh64\include
FWEJECT.PRG 
HB_FUNC.PRG
-Lc:\fwh64\lib
-lFiveH64
-lFiveHC64
-lgdiplus
-lole32
-lOleDlg
-lversion
xhb.hbc
hbct.hbc
hbwin.hbc
hbmzip.hbc
hbziparc.hbc
hbfoxpro.hbc
-ldflag=/NODEFAULTLIB:msvcrt
FWEJECT.rc

Code: Select all | Expand

call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
c:\harbour64\bin\win\msvc64\hbmk2 FWEJECT.HBP -comp=msvc64
Result Error
FWEJECT.c
FiveH64.lib(window.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp_SetWindowTheme" in Funktio
n "HB_FUN__SETWINDOWTHEME".
FWEJECT.exe : fatal error LNK1120: 1 nicht aufgelöste Externe
hbmk2: Error: Referenced, missing, but unknown function(s): _SETWINDOWTHEME()

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Mon Sep 09, 2024 11:37 am
by Antonio Linares
Dear Jimmy,

You have to link uxthemes.lib

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Mon Sep 09, 2024 12:22 pm
by Jimmy
hi Antonio,
Antonio Linares wrote:You have to link uxthemes.lib
OK, 32 Bit Version have Uxtheme.lib, but on 64 Bit Version there is no Uxtheme.lib any more
(last was in C:\borland\bcc58\Lib\PSDK\Uxtheme.lib) !?

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Mon Sep 09, 2024 1:01 pm
by Antonio Linares
look for uxtheme.a

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Mon Sep 09, 2024 2:38 pm
by Jimmy
hi Antonio,
Antonio Linares wrote:look for uxtheme.a
YES, that work and i can build my App :D

i have to include in my *.HBP for MSVC 64 Bit this line

Code: Select all | Expand

-LC:\BCC7764\lib\psdk -lUxtheme

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Tue Sep 10, 2024 4:42 am
by Jimmy
hi

i have try again to use

Code: Select all | Expand

cd\fwh\samples
build tutor01
for 32 Bit and got to old Problem that BUILD.BAT does not work :!:

found out that it CRASH at this line

Code: Select all | Expand

%hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include /DDOS /w /p %2 %3 > comp.log
while missing

Code: Select all | Expand

set fwh=%FWDIR%
in BUILD.BAT (got it from BUILD64.BAT)

but there is another Problem :
Compiling...
Harbour 3.2.0dev (r2008190002)
Copyright (c) 1999-2020, https://harbour.github.io/
Compiling 'tutor01.prg' and generating preprocessed output to 'tutor01.ppo'...
Lines 5029, Functions/Procedures 1
Generating C source output to 'tutor01.c'... Done.
Embarcadero C++ 7.70 for Win32 Copyright (c) 1993-2023 Embarcadero Technologies, Inc.
tutor01.c:
Borland Resource Compiler Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.
Turbo Incremental Link 6.97 Copyright (c) 1997-2022 Embarcadero Technologies, Inc.
Fatal: Unable to open file 'UUID.LIB'
* Linking errors *
so i check PATH of UUiD.LIB

Code: Select all | Expand

c:\fwh\samples>dir %bcdir%\lib\u*
 Verzeichnis von c:\bcc770\lib
19.03.2015  06:55             2.048 uuid.lib
it is OK and exist, so why i got a Error Message :?:

i check B32.BC and it contain

Code: Select all | Expand

c:\bcc770\lib\uuid.lib
so i check more and found out that Error is in this line

Code: Select all | Expand

c:\fwh\samples>%bcdir%\bin\ilink32 -Gn -Tpe -s @b32.bc
Turbo Incremental Link 6.97 Copyright (c) 1997-2022 Embarcadero Technologies, Inc.
Fatal: Unable to open file 'UUID.LIB'
Question : why does it CRASH :?:
what are wrong with Version 24.07 :evil:

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Tue Sep 10, 2024 9:31 am
by Antonio Linares
Dear Jimmy,

Please start with a setup from scratch. Maybe you have mixed files.

Borland 7.7 sometimes fails with uuid.lib. Try to copy it where you are building your app too

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Tue Sep 10, 2024 1:13 pm
by Jimmy
hi Antonio,
Antonio Linares wrote:Please start with a setup from scratch. Maybe you have mixed files.
Borland 7.7 sometimes fails with uuid.lib. Try to copy it where you are building your app too
i did remove BC770 and FWH 32 bit and have Setup both new.
it CRASH when run BUILD.BAT so i began to check all PATH and Environment %Variabel% like shown.

but under 32 Bit OS i still get Error Massage
Turbo Incremental Link 6.97 Copyright (c) 1997-2022 Embarcadero Technologies, Inc.
Fatal: Unable to open file 'UUID.LIB'
ALLMOST none of the Sample work using BUILD.BAT in my 32 Bit Environment :!:

i got it run under 64 Bit OS using
BUILDH64 Tutor01
 

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Tue Sep 10, 2024 1:27 pm
by Antonio Linares
Dear Jimmy,

You have to use buildh.bat for Borland bcc 7.7 32 bits

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Tue Sep 10, 2024 7:27 pm
by TOTOVIOTTI
Hola,
en mi caso, después de solucionar el tema del UUID, me salta el siguiente error al intentar compilar:

Turbo Incremental Link 6.97 Copyright (c) 1997-2022 Embarcadero Technologies, Inc.
Error: Unresolved external '__streams' referenced from D:\FWH\LIB\DOLPHIN.LIB|function
Error: Unable to perform link

Que podrá ser?

Muchas gracias!

Roberto

Re: FWH 2407 and BCC770 unable to use UUID.LIB

Posted: Tue Sep 10, 2024 7:39 pm
by alerchster