Hi,

 

I have develop a DLL under Visual C++, but my exported function are non compatible with BCB use, so I’ve to compile

Xalan C++ 1.9 under Borland Builder 5

My first step was to create a AllInOne Project

I’ve include same files than in MS Visual C++ 6 dsp project …

Then I’ve set same pre-compile definitions + WIN32_LEAN_AND_MEAN Def

 

I’ve replaced VCPPDefinitions.hpp by a new file : BCBDefintions.hpp

 

/********************** CONTENT OF BCBDefintion.hpp ********************/

 

 

/*

 * Copyright 1999-2004 The Apache Software Foundation.

 *

 * Licensed under the Apache License, Version 2.0 (the "License");

 * you may not use this file except in compliance with the License.

 * You may obtain a copy of the License at

 *

 *     http://www.apache.org/licenses/LICENSE-2.0

 *

 * Unless required by applicable law or agreed to in writing, software

 * distributed under the License is distributed on an "AS IS" BASIS,

 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.

 */

#if !defined(BCBDEFINITIONS_HEADER_GUARD_1357924680)

#define BCBDEFINITIONS_HEADER_GUARD_1357924680

 

 

#pragma warning(disable: 4127 4251 4511 4512 4514 4702 4710 4711 4786 4097; error: 4150 4172 4238 4239 4715)

 

// ---------------------------------------------------------------------------

//  A define in the build for each project is also used to control whether

//  the export keyword is from the project's viewpoint or the client's.

//  These defines provide the platform specific keywords that they need

//  to do this.

// ---------------------------------------------------------------------------

#define XALAN_PLATFORM_EXPORT     __declspec(dllexport)

#define XALAN_PLATFORM_IMPORT     __declspec(dllimport)

#define XALAN_PLATFORM_EXPORT_FUNCTION(T) XALAN_PLATFORM_EXPORT T

#define XALAN_PLATFORM_IMPORT_FUNCTION(T) XALAN_PLATFORM_IMPORT T

 

/*

#if __INTEL_COMPILER >= 600

#define XALAN_INLINE_INITIALIZATION

#elif _MSC_VER >= 1300

#define XALAN_INLINE_INITIALIZATION

#define XALAN_INLINE_INITIALIZATION_IS_DEFINITION_BUG

#define XALAN_NEW_STD_ALLOCATOR

#define XALAN_HAS_STD_ITERATORS

#if _MSC_VER == 1300

#define XALAN_VCPP_USE_PTRIT

#endif

#else

#define XALAN_REQUIRES_QUALIFIED_DESTRUCTOR

#define XALAN_NO_COVARIANT_RETURN_TYPE

#endif

*/

 

#define XALAN_HAS_STD_ITERATORS

#define XALAN_INLINE_INITIALIZATION

#define XALAN_REQUIRES_QUALIFIED_DESTRUCTOR

#define XALAN_NO_COVARIANT_RETURN_TYPE

 

 

#define XALAN_LSTRSUPPORT

#define XALAN_NEWLINE_IS_CRLF

#define XALAN_HAS_CPP_NAMESPACE

#define XALAN_HAS_STD_DISTANCE

 

 

#define XALAN_USE_NATIVE_WCHAR_T

#define XALAN_STRICT_ANSI_HEADERS

 

 

#endif   // BCBDEFINITIONS_HEADER_GUARD_1357924680

 

/********************** END OF BCBDefintion.hpp ********************/

 

And I’ve added a new section into PlatformDefinitions.hpp as follow

 

 

#include "TRU64Definitions.hpp"

#elif defined(__INTEL_COMPILER)

#include "IntelDefinitions.hpp"

#elif defined(__BORLANDC__)

#include "BCBDefinitions.hpp"

#else

#error Unknown compiler!

#endif

 

 

 

Now I have to generate the LocalMsgIndex.hpp file / and in same time, Xalan messages DLL …

I Just want to get more informations on this project, and the MsgCreator.exe Util

My aim ( at beginning )  is to be able to compile Xalan with INMEM options ( I’ve defined pre-compiled def for this case)

 

I think , this good way is to create another project such as Localization … but I am a little lost

 

Correct me if I am false , but :

There is in src/Utils , some C++ code :

 

MsgCreator, which will create an exe file, which take in arg param the XalanMsg_en_US.xlf file and will produce the LocalMsgIndex.hpp file ? I think I am ok

 

The other step is to compile the XalanMessages.dll and lib part, with the some compile flags ( as I can see in following command line to VC compiler … )

 

cl.exe /nologo /MDd /W4 /Gm /GX /ZI /Od /I "\src" /I "\include" /I "..\..\..\..\..\src" /I ".\.\..\..\..\..\..\Build\Win32\VC6\Debug\Nls\Include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XALANMSGLIB_EXPORTS" /D "XALAN_XALANM

SGLIB_BUILD_DLL" /Fo".\.\..\..\..\..\..\Build\Win32\VC6\Debug\Util\XalanMsgLib\\" /Fd".\.\..\..\..\..\..\Build\Win32\VC6\Debug\Util\XalanMsgLib\\" /FD /GZ /c ..\..\..\..\..\src\xalanc\Utils\XalanMsgLib\XalanMsgLib.cpp

 

 

I need some information on options :

_USRDLL are the DLL export flag? or is the XALANMSGLIB_EXPORTS ? or the XALAN_XALANMSGLIB_BUILD_DLL ?

 

What About compile flag.. ?

I see Multithread option on in /MDd 

And other ?

I ask help on compiling flags on BCB IDE

 

The /Fo <path> and /Fd are output Lib / Dll directory ? or Dll/Lib directory ? or others …

 

Thanks for your help & all comments…

 

Fabrice

Reply via email to