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;
+}
+//---------------------------------------------------------------------------