When I build FLTK fltk-1.3.x-r10221 with borland c++ 5.6(c++ builder 6),it has some errors,so I chaned like this paper,it works fine.and so I build it user Visual C++ 9.0 Express Edition ,it still work fine.so I am considering whether we should define these macros in FLTK sourse files ?and it may easy to Support borland c++ again? 
#    define strdup _strdup
#    define putenv _putenv
#    define stricmp _stricmp
#    define strnicmp _strnicmp
#    define hypot _hypot
#    define chdir _chdir

The errors and My changes :
1.Call to undefined function '_strdup'  _stricmp'  '_strnicmp'  '_putenv '   '_chdir '   '_chdir ' in function
flstring.h #43-44  #50 line 
#  if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__)
#    define strcasecmp(s,t)	stricmp((s), (t))  //_stricmp Modified to stricmp
#    define strncasecmp(s,t,n)	strnicmp((s), (t), (n)) //_strnicmp Modified to strnicmp
/* Visual C++ 2005 incorrectly displays a warning about the use of POSIX APIs
 * on Windows, which is supposed to be POSIX compliant...  Some of these
 * functions are also defined in ISO C99...
 */
#    ifndef __WATCOMC__
//#      define strdup _strdup

  fl_utf8.h   #44~57 line make it Invalidate
/*
#    undef strdup
#    define strdup _strdup
#    undef putenv
#    define putenv _putenv
#    undef stricmp
#    define stricmp _stricmp
#    undef strnicmp
#    define strnicmp _strnicmp
#    undef hypot
#    define hypot _hypot
#    undef chdir
#    define chdir _chdir
*/ 

 Fl_File_Chooser2.cxx #365-366 line make it Invalidate
// Visual C++ 2005 incorrectly displays a warning about the use of POSIX APIs
// on Windows, which is supposed to be POSIX compliant...
//#  define access _access
//#  define mkdir _mkdir

Fl_Preferences.cxx #38-39 line make it Invalidate
// Visual C++ 2005 incorrectly displays a warning about the use of POSIX APIs
// on Windows, which is supposed to be POSIX compliant...
//#  define access _access
//#  define mkdir _mkdir

Fl_get_system_colors.cxx #34 line make it Invalidate
#if defined(WIN32) && !defined(__CYGWIN__) && !defined(__WATCOMC__)
// Visual C++ 2005 incorrectly displays a warning about the use of POSIX APIs
// on Windows, which is supposed to be POSIX compliant...
//#  define putenv _putenv

Fl_File_Icon2.cxx #50 line make it Invalidate
// Visual C++ 2005 incorrectly displays a warning about the use of POSIX APIs
// on Windows, which is supposed to be POSIX compliant...
//#  define access _access
fluid.cxx #58～60 line make it Invalidate
// Visual C++ 2005 incorrectly displays a warning about the use of POSIX APIs
// on Windows, which is supposed to be POSIX compliant...
//#    define access _access
//#    define chdir _chdir
//#    define getcwd _getcwd
demo.cxx #28-29 line make it Invalidate
// Visual C++ 2005 incorrectly displays a warning about the use of POSIX APIs
// on Windows, which is supposed to be POSIX compliant...
//#    define chdir _chdir
//#    define putenv _putenv
2. Undefined symbol '__wargv' in function WinMain
We know boland c++ builder is build win32 Program, __wargv is x64 ? so I do tihs.
fl_call_main.c #98-107 line make it Invalidate
/*
    if (__wargv ) {
      for (l = 0; __wargv[i] && __wargv[i][l]; l++) {}; // is this just wstrlen???
      dstlen = (l * 5) + 1;
      ar[i] = (char*) malloc(dstlen);
 //  ar[i][fl_unicode2utf(__wargv[i], l, ar[i])] = 0;
      dstlen = fl_utf8fromwc(ar[i], dstlen, __wargv[i], l);
      ar[i][dstlen] = 0;
} else */
factory.cxx #40～65 line make it Invalidate
3.I do not know where is the problem ? I find  flstring.h  #define strcasecmp(s,t)	stricmp((s), (t)) ,so I make it Invalidate
Error E2063 factory.cxx 59: Illegal initialization
Error E2293 factory.cxx 59: ) expected
Error E2303 factory.cxx 87: Type name expected in function Fl_Box_Type::widget(int,int,int,int)
/*
static int
strcasecmp(const char *s, const char *t) {
  while (*s != '\0' && *t != '\0') {
    if (tolower(*s) < tolower(*t))
      return (-1);
    else if (tolower(*s) > tolower(*t))
      return (1);
    s ++;
    t ++;
  }
  if (*s == '\0' && *t == '\0')
    return (0);
  else if (*s != '\0')
    return (1);
  else
    return (-1);
} */
#endif    // !HAVE_STRCASECMP
4. Cannot convert Variable Types
fluid.cxx  #1363  line  mode ->(char*)mode
Cannot convert 'const char *' to 'char *' in function Fl_Process::popen(const
 char *,const char *)
_fpt = _fdopen(_open_osfhandle((fl_intptr_t) h,_O_BINARY),(char*)mode);

sudoku.cxx  # 1273 line Force change to  float
Error E2015 C:\Users\Administrator\Desktop\fltk-1.3.x-r10221\test\sudoku.cxx 127
3: Ambiguity between 'Fl_Preferences::set(const char *,int)' and 'Fl_Preferences
::set(const char *,float)' in function Sudoku::save_game()
        sprintf(name, "readonly%d.%d", j, k);
      prefs_.set(name, (float)cell->readonly());