468,315 Members | 1,438 Online

# Converting from VS.net 2003 to VS.net 2005

We have a MFC win32 desktop application written in Visual C++. We were using
Visula studio 2003 as the editor and everything was compiling, linking and
working fine. Since we want to move to .Net world, we are in process of using
Visual Studio 2005 instead of Visual studio 2003. During the conversion
process we have the following two issues:
1. We have included the afx.h before the afxwin.h in our source code files.
When we compile our code, we get the following ewrror message:

fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll
version) requires MFC shared dll version. Please #define _AFXDLL or do not
use /MD[d] c:\program files\microsoft visual studio
8\vc\atlmfc\include\afx.h 24

As a fix we tried to make a seperate header file afxdlldef.h which said the
following:

#ifndef _AFXDLL
#define _AFXDLL
#endif

If we include this header file in our source code files, it compiles without
any error. But this approach requires changing every source code file to
include this new header file which we don't wish to do. So we would like to
know if there is some other better approach to resolve this problem

2. MSDN help says that defining _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES as 1
will eliminate the warning by changing the strcpy call to strcpy_s. But when
we tried using this, we still get warnings for strcpy.

Jul 11 '06 #1
1 7031
you also need to define

_CRT_SECURE_NO_DEPRECATE
_CRT_NONSTDC_NO_DEPRECATE

See:

http://msdn2.microsoft.com/en-us/library/8ef0s5kh.aspx

Ted.

news:16**********************************@microsof t.com...
We have a MFC win32 desktop application written in Visual C++. We were
using
Visula studio 2003 as the editor and everything was compiling, linking and
working fine. Since we want to move to .Net world, we are in process of
using
Visual Studio 2005 instead of Visual studio 2003. During the conversion
process we have the following two issues:
1. We have included the afx.h before the afxwin.h in our source code
files.
When we compile our code, we get the following ewrror message:

fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll
version) requires MFC shared dll version. Please #define _AFXDLL or do not
use /MD[d] c:\program files\microsoft visual studio
8\vc\atlmfc\include\afx.h 24

As a fix we tried to make a seperate header file afxdlldef.h which said
the
following:

#ifndef _AFXDLL
#define _AFXDLL
#endif

If we include this header file in our source code files, it compiles
without
any error. But this approach requires changing every source code file to
include this new header file which we don't wish to do. So we would like
to
know if there is some other better approach to resolve this problem

2. MSDN help says that defining _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES as
1
will eliminate the warning by changing the strcpy call to strcpy_s. But
when
we tried using this, we still get warnings for strcpy.