diff --git a/cpp/bcb-iconv/Debug/libcharset1.dll b/cpp/bcb-iconv/Debug/libcharset1.dll new file mode 100644 index 0000000..aec4d23 Binary files /dev/null and b/cpp/bcb-iconv/Debug/libcharset1.dll differ diff --git a/cpp/bcb-iconv/Debug/libiconv2.dll b/cpp/bcb-iconv/Debug/libiconv2.dll new file mode 100644 index 0000000..fb1ffba Binary files /dev/null and b/cpp/bcb-iconv/Debug/libiconv2.dll differ diff --git a/cpp/bcb-iconv/Debug/libintl3.dll b/cpp/bcb-iconv/Debug/libintl3.dll new file mode 100644 index 0000000..4f309be Binary files /dev/null and b/cpp/bcb-iconv/Debug/libintl3.dll differ diff --git a/cpp/bcb-iconv/bcb_iconv.cbproj b/cpp/bcb-iconv/bcb_iconv.cbproj new file mode 100644 index 0000000..5ee2075 --- /dev/null +++ b/cpp/bcb-iconv/bcb_iconv.cbproj @@ -0,0 +1,152 @@ +п»ї + + {41947A47-0E83-4859-A1AC-01BC7C9091D9} + 12.0 + Debug + + + true + + + true + Base + true + + + true + Base + true + + + true + vcl.bpi;rtl.bpi;bcbie.bpi;vclx.bpi;vclactnband.bpi;xmlrtl.bpi;bcbsmp.bpi;dbrtl.bpi;vcldb.bpi;vcldbx.bpi;bdertl.bpi;dsnap.bpi;dsnapcon.bpi;TeeUI.bpi;TeeDB.bpi;Tee.bpi;adortl.bpi;IndyCore.bpi;IndySystem.bpi;IndyProtocols.bpi;dbexpress.bpi;DbxCommonDriver.bpi;DataSnapIndy10ServerTransport.bpi;DataSnapProviderClient.bpi;DataSnapServer.bpi;DbxClientDriver.bpi;DBXInterBaseDriver.bpi;DBXMySQLDriver.bpi;dbxcds.bpi;DBXSybaseASEDriver.bpi;DBXSybaseASADriver.bpi;DBXOracleDriver.bpi;DBXMSSQLDriver.bpi;DBXInformixDriver.bpi;DBXDb2Driver.bpi;frxBDE12.bpi;frxcs12.bpi;frxDB12.bpi;frx12.bpi;frxDBX12.bpi;frxe12.bpi;frxTee12.bpi;fs12.bpi;fsADO12.bpi;fsBDE12.bpi;fsDB12.bpi;fsTee12.bpi;Jcl.bpi;JclVcl.bpi;JvCoreD12R.bpi;JvSystemD12R.bpi;JvStdCtrlsD12R.bpi;JvAppFrmD12R.bpi;JvBandsD12R.bpi;JvDBD12R.bpi;JvDlgsD12R.bpi;JvBDED12R.bpi;JvCmpD12R.bpi;JvCryptD12R.bpi;JvCtrlsD12R.bpi;JvCustomD12R.bpi;JvDockingD12R.bpi;JvDotNetCtrlsD12R.bpi;JvEDID12R.bpi;JvGlobusD12R.bpi;JvHMID12R.bpi;JvInterpreterD12R.bpi;JvJansD12R.bpi;JvManagedThreadsD12R.bpi;JvMMD12R.bpi;JvNetD12R.bpi;JvPageCompsD12R.bpi;JvPluginD12R.bpi;JvPrintPreviewD12R.bpi;JvRuntimeDesignD12R.bpi;JvTimeFrameworkD12R.bpi;JvValidatorsD12R.bpi;JvWizardD12R.bpi;JvXPCtrlsD12R.bpi;frxADO12.bpi + rtl.bpi;vcl.bpi + CppConsoleApplication + rtl.lib;vcl.lib + exe + libiconv\include;$(BCC_IncludePath) + JPHNE + NO_STRICT;$(Defines) + true + true + K:\dev\cpp\bcb-iconv;$(CG_BOOST_ROOT)\boost\tr1\tr1;$(BDS)\include;$(BDS)\include\dinkumware;$(BDS)\include\vcl;$(CG_BOOST_ROOT);$(IncludePath) + libiconv;C:\libiconv\bin;C:\libiconv\lib;K:\dev\cpp\bcb-iconv;$(BDS)\lib;$(BDS)\lib\obj;$(BDS)\lib\psdk;$(ILINK_LibraryPath) + false + true + + + false + true + false + true + _DEBUG;$(Defines) + false + Debug + true + None + DEBUG + true + true + true + $(BDS)\lib\debug;$(ILINK_LibraryPath) + true + Full + true + + + NDEBUG;$(Defines) + Release + $(BDS)\lib\release;$(ILINK_LibraryPath) + None + + + + 0 + + + true + 1 + + + true + 2 + + + true + 3 + + + Base + + + Cfg_2 + Base + + + Cfg_1 + Base + + + + + CPlusPlusBuilder.Personality.12 + CppConsoleApplication + + + + False + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 1049 + 1251 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + + + + + + True + + + + + + + False + + False + + True + False + + + False + True + True + + + + 12 + + diff --git a/cpp/bcb-iconv/libiconv/include/iconv.h b/cpp/bcb-iconv/libiconv/include/iconv.h new file mode 100644 index 0000000..6794206 --- /dev/null +++ b/cpp/bcb-iconv/libiconv/include/iconv.h @@ -0,0 +1,141 @@ +/* Copyright (C) 1999-2003 Free Software Foundation, Inc. + This file is part of the GNU LIBICONV Library. + + The GNU LIBICONV Library is free software; you can redistribute it + and/or modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + The GNU LIBICONV Library is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU LIBICONV Library; see the file COPYING.LIB. + If not, write to the Free Software Foundation, Inc., 59 Temple Place - + Suite 330, Boston, MA 02111-1307, USA. */ + +/* When installed, this file is called "iconv.h". */ + +#ifndef _LIBICONV_H +#define _LIBICONV_H + +#define _LIBICONV_VERSION 0x0109 /* version number: (major<<8) + minor */ + +#ifdef LIBICONV_STATIC +#define LIBICONV_DLL_EXPORTED +#else /* LIBICONV_STATIC */ +#ifdef BUILDING_LIBICONV +#define LIBICONV_DLL_EXPORTED __declspec(dllexport) +#else +#define LIBICONV_DLL_EXPORTED __declspec(dllimport) +#endif +#endif /* LIBICONV_STATIC */ +extern LIBICONV_DLL_EXPORTED int _libiconv_version; /* Likewise */ + +/* We would like to #include any system header file which could define + iconv_t, 1. in order to eliminate the risk that the user gets compilation + errors because some other system header file includes /usr/include/iconv.h + which defines iconv_t or declares iconv after this file, 2. when compiling + for LIBICONV_PLUG, we need the proper iconv_t type in order to produce + binary compatible code. + But gcc's #include_next is not portable. Thus, once libiconv's iconv.h + has been installed in /usr/local/include, there is no way any more to + include the original /usr/include/iconv.h. We simply have to get away + without it. + Ad 1. The risk that a system header file does + #include "iconv.h" or #include_next "iconv.h" + is small. They all do #include . + Ad 2. The iconv_t type is a pointer type in all cases I have seen. (It + has to be a scalar type because (iconv_t)(-1) is a possible return value + from iconv_open().) */ + +/* Define iconv_t ourselves. */ +#undef iconv_t +#define iconv_t libiconv_t +typedef void* iconv_t; + +/* Get size_t declaration. */ +#include + +/* Get errno declaration and values. */ +#include +/* Some systems, like SunOS 4, don't have EILSEQ. Some systems, like BSD/OS, + have EILSEQ in a different header. On these systems, define EILSEQ + ourselves. */ +#ifndef EILSEQ +#define EILSEQ +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Allocates descriptor for code conversion from encoding `fromcode' to + encoding `tocode'. */ +#ifndef LIBICONV_PLUG +#define iconv_open libiconv_open +#endif +extern LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode); + +/* Converts, using conversion descriptor `cd', at most `*inbytesleft' bytes + starting at `*inbuf', writing at most `*outbytesleft' bytes starting at + `*outbuf'. + Decrements `*inbytesleft' and increments `*inbuf' by the same amount. + Decrements `*outbytesleft' and increments `*outbuf' by the same amount. */ +#ifndef LIBICONV_PLUG +#define iconv libiconv +#endif +extern LIBICONV_DLL_EXPORTED size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); + +/* Frees resources allocated for conversion descriptor `cd'. */ +#ifndef LIBICONV_PLUG +#define iconv_close libiconv_close +#endif +extern LIBICONV_DLL_EXPORTED int iconv_close (iconv_t cd); + + +#ifndef LIBICONV_PLUG + +/* Nonstandard extensions. */ + +/* Control of attributes. */ +#define iconvctl libiconvctl +extern LIBICONV_DLL_EXPORTED int iconvctl (iconv_t cd, int request, void* argument); + +/* Requests for iconvctl. */ +#define ICONV_TRIVIALP 0 /* int *argument */ +#define ICONV_GET_TRANSLITERATE 1 /* int *argument */ +#define ICONV_SET_TRANSLITERATE 2 /* const int *argument */ +#define ICONV_GET_DISCARD_ILSEQ 3 /* int *argument */ +#define ICONV_SET_DISCARD_ILSEQ 4 /* const int *argument */ + +/* Listing of locale independent encodings. */ +#define iconvlist libiconvlist +extern LIBICONV_DLL_EXPORTED void iconvlist (int (*do_one) (unsigned int namescount, + const char * const * names, + void* data), + void* data); + +/* Support for relocatable packages. */ + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +extern LIBICONV_DLL_EXPORTED void libiconv_set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + +#endif + + +#ifdef __cplusplus +} +#endif + + +#endif /* _LIBICONV_H */ diff --git a/cpp/bcb-iconv/libiconv/include/libcharset.h b/cpp/bcb-iconv/libiconv/include/libcharset.h new file mode 100644 index 0000000..1a81ced --- /dev/null +++ b/cpp/bcb-iconv/libiconv/include/libcharset.h @@ -0,0 +1,56 @@ +/* Copyright (C) 2003 Free Software Foundation, Inc. + This file is part of the GNU CHARSET Library. + + The GNU CHARSET Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU CHARSET Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with the GNU CHARSET Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _LIBCHARSET_H +#define _LIBCHARSET_H + +#ifdef LIBCHARSET_STATIC +#define LIBCHARSET_DLL_EXPORTED +#else /* LIBCHARSET_STATIC */ +#ifdef BUILDING_LIBCHARSET +#define LIBCHARSET_DLL_EXPORTED __declspec(dllexport) +#else +#define LIBCHARSET_DLL_EXPORTED __declspec(dllimport) +#endif +#endif /* LIBCHARSET_STATIC */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Support for relocatable packages. */ + +/* Sets the original and the current installation prefix of the package. + Relocation simply replaces a pathname starting with the original prefix + by the corresponding pathname with the current prefix instead. Both + prefixes should be directory names without trailing slash (i.e. use "" + instead of "/"). */ +extern LIBCHARSET_DLL_EXPORTED void libcharset_set_relocation_prefix (const char *orig_prefix, + const char *curr_prefix); + + +#ifdef __cplusplus +} +#endif + + +#endif /* _LIBCHARSET_H */ diff --git a/cpp/bcb-iconv/libiconv/include/localcharset.h b/cpp/bcb-iconv/libiconv/include/localcharset.h new file mode 100644 index 0000000..25d21eb --- /dev/null +++ b/cpp/bcb-iconv/libiconv/include/localcharset.h @@ -0,0 +1,51 @@ +/* Determine a canonical name for the current locale's character encoding. + Copyright (C) 2000-2003 Free Software Foundation, Inc. + This file is part of the GNU CHARSET Library. + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Library General Public License as published + by the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + USA. */ + +#ifndef _LOCALCHARSET_H +#define _LOCALCHARSET_H + +#ifdef LIBCHARSET_STATIC +#define LIBCHARSET_DLL_EXPORTED +#else /* LIBCHARSET_STATIC */ +#ifdef BUILDING_LIBCHARSET +#define LIBCHARSET_DLL_EXPORTED __declspec(dllexport) +#else +#define LIBCHARSET_DLL_EXPORTED __declspec(dllimport) +#endif +#endif /* LIBCHARSET_STATIC */ + +#ifdef __cplusplus +extern "C" { +#endif + + +/* Determine the current locale's character encoding, and canonicalize it + into one of the canonical names listed in config.charset. + The result must not be freed; it is statically allocated. + If the canonical name cannot be determined, the result is a non-canonical + name. */ +extern LIBCHARSET_DLL_EXPORTED const char * locale_charset (void); + + +#ifdef __cplusplus +} +#endif + + +#endif /* _LOCALCHARSET_H */ diff --git a/cpp/bcb-iconv/libiconv/libcharset1-bcb.lib b/cpp/bcb-iconv/libiconv/libcharset1-bcb.lib new file mode 100644 index 0000000..ff12fad Binary files /dev/null and b/cpp/bcb-iconv/libiconv/libcharset1-bcb.lib differ diff --git a/cpp/bcb-iconv/libiconv/libcharset1.dll b/cpp/bcb-iconv/libiconv/libcharset1.dll new file mode 100644 index 0000000..aec4d23 Binary files /dev/null and b/cpp/bcb-iconv/libiconv/libcharset1.dll differ diff --git a/cpp/bcb-iconv/libiconv/libiconv2-bcb.lib b/cpp/bcb-iconv/libiconv/libiconv2-bcb.lib new file mode 100644 index 0000000..c95635b Binary files /dev/null and b/cpp/bcb-iconv/libiconv/libiconv2-bcb.lib differ diff --git a/cpp/bcb-iconv/libiconv/libiconv2.dll b/cpp/bcb-iconv/libiconv/libiconv2.dll new file mode 100644 index 0000000..fb1ffba Binary files /dev/null and b/cpp/bcb-iconv/libiconv/libiconv2.dll differ diff --git a/cpp/bcb-iconv/libiconv/libintl3-bcb.lib b/cpp/bcb-iconv/libiconv/libintl3-bcb.lib new file mode 100644 index 0000000..3b99166 Binary files /dev/null and b/cpp/bcb-iconv/libiconv/libintl3-bcb.lib differ diff --git a/cpp/bcb-iconv/libiconv/libintl3.dll b/cpp/bcb-iconv/libiconv/libintl3.dll new file mode 100644 index 0000000..4f309be Binary files /dev/null and b/cpp/bcb-iconv/libiconv/libintl3.dll differ diff --git a/cpp/bcb-iconv/main.cpp b/cpp/bcb-iconv/main.cpp new file mode 100644 index 0000000..2a75557 --- /dev/null +++ b/cpp/bcb-iconv/main.cpp @@ -0,0 +1,44 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop + +#include +//--------------------------------------------------------------------------- +#include +#include +#include +//#include + +#pragma argsused + +int _tmain(int argc, _TCHAR* argv[]) +{ + iconv_t cd; + size_t k, f, t; + int se; + const char *code = "Вопрос!"; + const char* in = code; + char buf[100]; + char* out = buf; + + cd = iconv_open("cp1251", "koi8-r"); + if( cd == (iconv_t)(-1) ) + //err( 1, "iconv_open" ); + fprintf (stderr, "iconv_open"); + f = strlen(code); + t = sizeof buf; + memset( &buf, 0, sizeof buf ); + errno = 0; + k = iconv(cd, &in, &f, &out, &t); + se = errno; + printf( "converted: %u,error=%d\n", (unsigned) k, se ); + + printf("string: %s\n", buf); + + iconv_close(cd); + + system ("pause"); + return 0; +} +//---------------------------------------------------------------------------