Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Builder 6 + indy 9.0 => Builder2007 + Indy10 and the TIdHTTPWebBrokerBridge

62 views
Skip to first unread message

jvdn

unread,
Aug 5, 2008, 5:28:36 AM8/5/08
to
Hi,

I have the folowing problem:

I have a Client Server application and I use Indy for the communication.

The Server has a TIdHTTPWebBrokerBridge. we have a standalone application
that is a Soap Server.

The file structure is as folows:

I have a form TFormServer.

That includes a TSOAPWebServer.

The WebServer includes TIdHTTPWebBrokerBridge.

When I compile TFormServer in the new situation I get all kind of errors on
different CodeGear header files. that I can't Place.

examples of the errors:

the first one is

[BCC32 Error] Httpapp.hpp(91): E2293 ) expected

the row is :

void __fastcall ExtractFields(const Sysutils::TSysCharSet &Separators,
const Sysutils::TSysCharSet &WhiteSpace, char * Content, Classes::TStrings*
Strings);
and the compiler complains about the Second Sysutils::TSysCharSet ?? So I
belive there is somthing els wrong.

othere errors are :

[BCC32 Error] iosfwd(260): E2238 Multiple declaration for
'char_traits<wchar_t>::assign(wchar_t &,const wchar_t &)'
[BCC32 Error] iosfwd(141): E2344 Earlier declaration of
'char_traits<wchar_t>::assign(wchar_t &,const wchar_t &)'

After some commenting out I find a relation to the Header of
TIdHTTPWebBrokerBridge.

When I try to forward declare the TIdHTTPWebBrokerBridge.

And in the CPP file to use the include I have ambiguity between de forward
declared TIdHTTPWebBrokerBridge and the Included TIdHTTPWebBrokerBridge.

But the TFormServer Compiles fine now. That way I believe that it has to do
with the Indy part.

About my replacement of Indy:

I removed all Indy10 files from the codegear directories.

Bin

Include\Indy10

Lib\Debug\Indy10

Lib\Debug\*.lib

Lib\Debug\*.bpi

Lib\Indy10

Lib\Release\*.lib

Lib\Release\*.bpi

Source\Indy\Indy10

I made new project files and internally I used IndyCore100.bpi/Lib
IndySystem100.bpi/Lib and the IndyProtocols100.bpi/Lib

I copied all files from the compiled version to the directories above.

For compilation I run this script:

>>>>>>>>>>Compile script <<<<<<<<<<<<

REM define output paths
Set BASE_OUTPUT_PATH=c:\Builder2007Indy
Set OBJ_PATH=%BASE_OUTPUT_PATH%\Build
Set HEADER_OUTPUT=%BASE_OUTPUT_PATH%\Include
Set LIB_OUTPUT="%BASE_OUTPUT_PATH%\Lib"
Set PACKAGE_OUTPUT="%BASE_OUTPUT_PATH%\Bin"
Set SOURCES_OUTPUT=%BASE_OUTPUT_PATH%\Source\

REM Create output paths if don't exist
if not exist %BASE_OUTPUT_PATH% md %BASE_OUTPUT_PATH%

if not exist %OBJ_PATH% md %OBJ_PATH%

if not exist %HEADER_OUTPUT% md %HEADER_OUTPUT%

if not exist %PACKAGE_OUTPUT% md %PACKAGE_OUTPUT%

if not exist %SOURCES_OUTPUT% md %SOURCES_OUTPUT%

if not exist %SOURCES_OUTPUT%System\ md %SOURCES_OUTPUT%System\
if not exist %SOURCES_OUTPUT%Core\ md %SOURCES_OUTPUT%Core\
if not exist %SOURCES_OUTPUT%Protocols\ md %SOURCES_OUTPUT%Protocols\

REM Create the sub pasts

REM Start with system
cd System
dcc32 -N0%OBJ_PATH% -NH%HEADER_OUTPUT% -NO%LIB_OUTPUT% -NB%PACKAGE_OUTPUT% -LE%PACKAGE_OUTPUT%
-LN%PACKAGE_OUTPUT% -JL -B IndySystem100.dpk
copy *.pas %SOURCES_OUTPUT%System\*.pas
copy IdCompilerDefines.inc %SOURCES_OUTPUT%System\IdCompilerDefines.inc

REM Core part
cd ..\Core
dcc32 -N0%OBJ_PATH% -NH%HEADER_OUTPUT% -NO%LIB_OUTPUT% -NB%PACKAGE_OUTPUT% -LE%PACKAGE_OUTPUT%
-LN%PACKAGE_OUTPUT% -JL -B IndyCore100.dpk

REM COre Design time Package

dcc32 -N0%OBJ_PATH% -NH%HEADER_OUTPUT% -NO%LIB_OUTPUT% -NB%PACKAGE_OUTPUT% -LE%PACKAGE_OUTPUT%
-LN%PACKAGE_OUTPUT% -JL -B dclIndyCore100.dpk
copy *.pas %SOURCES_OUTPUT%Core\*.pas
copy IdCompilerDefines.inc %SOURCES_OUTPUT%Core\IdCompilerDefines.inc

REM Protocols

cd ..\Protocols
dcc32 -N0%OBJ_PATH% -NH%HEADER_OUTPUT% -NO%LIB_OUTPUT% -NB%PACKAGE_OUTPUT% -LE%PACKAGE_OUTPUT%
-LN%PACKAGE_OUTPUT% -JL -B IndyProtocols100.dpk

REM Protocols Design time Package

dcc32 -N0%OBJ_PATH% -NH%HEADER_OUTPUT% -NO%LIB_OUTPUT% -NB%PACKAGE_OUTPUT% -LE%PACKAGE_OUTPUT%
-LN%PACKAGE_OUTPUT% -JL -B dclIndyProtocols100.dpk
copy *.pas %SOURCES_OUTPUT%Protocols\*.pas
copy IdCompilerDefines.inc %SOURCES_OUTPUT%Protocols\IdCompilerDefines.inc

cd..

>>>>> end of script <<<<<<<<

I used The -JL option for generating Lib + hpp and the -B option to get the
dcu files.

>>> and for copy <<<<<

SET CODEGEAR="C:\Program Files\CodeGear\RAD Studio\5.0"
Set BASE_OUTPUT_PATH=c:\Builder2007Indy
Set OBJ_PATH=%BASE_OUTPUT_PATH%\Build
Set HEADER_OUTPUT=%BASE_OUTPUT_PATH%\Include
Set LIB_OUTPUT="%BASE_OUTPUT_PATH%\Lib"
Set PACKAGE_OUTPUT="%BASE_OUTPUT_PATH%\Bin"
Set SOURCES_OUTPUT=%BASE_OUTPUT_PATH%\Source\

copy %PACKAGE_OUTPUT%\*.bpl %CODEGEAR%\Bin\*.bpl
copy %OBj_PATH%\*.dcu %CODEGEAR%\Lib\Debug\Indy10\*.dcu
copy %OBj_PATH%\*.dcu %CODEGEAR%\Lib\Indy10\*.dcu

rem bpi

copy %PACKAGE_OUTPUT%\*.bpi %CODEGEAR%\Lib\Debug\*.bpi
rem Libs

copy %LIB_OUTPUT%\*100.Lib %CODEGEAR%\Lib\Debug\*.Lib

rem Headers

copy %HEADER_OUTPUT%\*.hpp %CODEGEAR%\Include\Indy10\*.hpp

rem Sources

rem when copying the sources we should copy the IdCompilerDefines.inc to.
xcopy /s %SOURCES_OUTPUT%*.* %CODEGEAR%\Sources\Indy\Indy10\*.*

>>> end of copy script <<<<<<

in the copy script I left the Release directory for the time bieng I think I
have to compile the package difrently for a releas. So for now that is on
hold.

To use the TIdHTTPWebBrokerBridge I did copy IdHTTPWebBrokerBridge.pas +
IdCompilerDefines.inc to my code directory.

question:

Do I have to add a conditional defines in my Server Project?

Is there anyone that knows what the reason is?

Regards,

Jvdn


Remy Lebeau (TeamB)

unread,
Aug 5, 2008, 1:23:45 PM8/5/08
to

"jvdn" <ge...@geenmail.com> wrote in message
news:48981d41$1...@newsgroups.borland.com...

> [BCC32 Error] Httpapp.hpp(91): E2293 ) expected

That usually means a specified data type is unknown to the compiler.

> void __fastcall ExtractFields(const Sysutils::TSysCharSet &Separators,
> const Sysutils::TSysCharSet &WhiteSpace, char * Content,
> Classes::TStrings* Strings);
> and the compiler complains about the Second Sysutils::TSysCharSet ??

I doubt that. There would be no reason for it to flag the second one as
faulty but accept the first one as ok. Besides, TSysCharSet does exist in
the Sysutils namespace anyway. The error is somewhere else.


Gambit


jvdn

unread,
Aug 7, 2008, 9:37:52 AM8/7/08
to
Hi Remy Lebeau,

"Remy Lebeau (TeamB)" <no....@no.spam.com> schreef in bericht
news:48988d0c$1...@newsgroups.borland.com...

#include <IdBaseComponent.hpp>
#include <IdComponent.hpp>
#include <IdUDPBase.hpp>
#include <IdUDPClient.hpp>
#include <IdUDPServer.hpp>

in the Header before
#include <IdHTTPWebBrokerBridge.hpp>
was the problem.

Thanks,

jvdn


0 new messages