Issues with Porting VS6.0 MFC Projects to VS8.0 - Need Help

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I am in the midst of porting a massive MFC application from VS6.0 to VS8.0.
While i have fixed most of the compile time errors, i do have quite a linker
error that i have not been able to resolve. The error i get is

Error 100 error LNK2001: unresolved external symbol "public: virtual void
__thiscall CWnd::PostNcDestroy(void)"
(?PostNcDestroy@CWnd@@UAEXXZ) Evenout.obj

I have about 200 of these on almost all the obj's that have a dialog in
them(which is understandable). But i do see that the delcaration of
CWnd::PostNcDestory( ) in the systems afxwin.h header which is public:

// for custom cleanup after WM_NCDESTROY
public:
virtual void PostNcDestroy();

Do i need to refer to any particular version of SDK/ *.lib or am i missing
something. Any help here would be appreciated.
 
BK-Chicago said:
I am in the midst of porting a massive MFC application from VS6.0 to VS8.0.
While i have fixed most of the compile time errors, i do have quite a
linker
error that i have not been able to resolve. The error i get is

Error 100 error LNK2001: unresolved external symbol "public: virtual void
__thiscall CWnd::PostNcDestroy(void)"
(?PostNcDestroy@CWnd@@UAEXXZ) Evenout.obj

I have about 200 of these on almost all the obj's that have a dialog in
them(which is understandable). But i do see that the delcaration of
CWnd::PostNcDestory( ) in the systems afxwin.h header which is public:

// for custom cleanup after WM_NCDESTROY
public:
virtual void PostNcDestroy();

Do i need to refer to any particular version of SDK/ *.lib or am i
missing
something. Any help here would be appreciated.

Make sure that you're not still linking against the VC6 version of MFC.
Check the project settings and the Tools|Options|Projects and Solutions|C++
Directories to make sure that the VS2005 directories are the only ones on
the library search path.

-cd
 
Thank you for looking into this.

This is what i have set in the Tools Option category.

<ToolsOptionsSubCategory name="VCDirectories"
RegisteredName="VCDirectories" PackageName="Visual C++ Project System
Package">
<PropertyValue
name="LibraryDirectories">Win32|$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(VCInstallDir)atlmfc\lib\i386;$(VCInstallDir)PlatformSDK\lib;$(FrameworkSDKDir)lib;$(VSInstallDir);$(VSInstallDir)lib|x64|$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(VCInstallDir)PlatformSDK\lib\amd64;$(VSInstallDir)SDK\v2.0\lib\amd64|Pocket
PC 2003
(ARMV4)|$(VSInstallDir)SmartDevices\SDK\PocketPC2003\lib\ARMV4;$(VCInstallDir)ce\atlmfc\lib\ARMV4;$(VCInstallDir)ce\lib\ARMV4;|Smartphone
2003
(ARMV4)|$(VSInstallDir)SmartDevices\SDK\SmartPhone2003\lib\ARMV4;$(VCInstallDir)ce\atlmfc\lib\ARMV4;$(VCInstallDir)ce\lib\ARMV4;</PropertyValue>
<PropertyValue
name="ReferenceDirectories">Win32|$(FrameworkDir)$(FrameworkVersion);$(VCInstallDir)atlmfc\lib|x64|$(FrameworkDir)$(FrameworkVersion);$(VCInstallDir)atlmfc\lib\amd64|Pocket PC 2003 (ARMV4)||Smartphone 2003 (ARMV4)|</PropertyValue>
<PropertyValue
name="ExcludeDirectories">Win32|$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(VCInstallDir)PlatformSDK\include;$(FrameworkSDKDir)include;$(FrameworkDir)$(FrameworkVersion);$(VCInstallDir)atlmfc\lib|x64|$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(VCInstallDir)PlatformSDK\include;$(FrameworkSDKDir)include;$(FrameworkDir)$(FrameworkVersion);$(VCInstallDir)atlmfc\lib\amd64|Pocket
PC 2003
(ARMV4)|$(VCInstallDir)ce\include;$(VSInstallDir)SmartDevices\SDK\PocketPC2003\include;$(VCInstallDir)ce\atlmfc\include;$(VSInstallDir)SmartDevices\SDK\SQL
Server\Mobile\v3.0;;|Smartphone 2003
(ARMV4)|$(VCInstallDir)ce\include;$(VSInstallDir)SmartDevices\SDK\SmartPhone2003\include;$(VCInstallDir)ce\atlmfc\include;$(VSInstallDir)SmartDevices\SDK\SQL Server\Mobile\v3.0;;</PropertyValue>
<PropertyValue
name="IncludeDirectories">Win32|C:\Development\projects\Zipl_src;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(VCInstallDir)PlatformSDK\include;$(FrameworkSDKDir)include|x64|$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(VCInstallDir)PlatformSDK\include;$(FrameworkSDKDir)include|Pocket
PC 2003
(ARMV4)|$(VCInstallDir)ce\include;$(VSInstallDir)SmartDevices\SDK\PocketPC2003\include;$(VCInstallDir)ce\atlmfc\include;$(VSInstallDir)SmartDevices\SDK\SQL
Server\Mobile\v3.0;|Smartphone 2003
(ARMV4)|$(VCInstallDir)ce\include;$(VSInstallDir)SmartDevices\SDK\SmartPhone2003\include;$(VCInstallDir)ce\atlmfc\include;$(VSInstallDir)SmartDevices\SDK\SQL Server\Mobile\v3.0;</PropertyValue>
<PropertyValue
name="SourceDirectories">Win32|$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\mfcm;$(VCInstallDir)atlmfc\src\atl;$(VCInstallDir)crt\src|x64|$(VCInstallDir)atlmfc\src\mfc;$(VCInstallDir)atlmfc\src\mfcm;$(VCInstallDir)atlmfc\src\atl;$(VCInstallDir)crt\src|Pocket
PC 2003
(ARMV4)|$(VCInstallDir)ce\atlmfc\src\atl\;$(VCInstallDir)ce\atlmfc\src\mfc\;$(VCInstallDir)ce\crt\src\|Smartphone
2003
(ARMV4)|$(VCInstallDir)ce\atlmfc\src\atl\;$(VCInstallDir)ce\atlmfc\src\mfc\;$(VCInstallDir)ce\crt\src\</PropertyValue>
<PropertyValue
name="ExecutableDirectories">Win32|$(VCInstallDir)bin;$(VCInstallDir)PlatformSDK\bin;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML
Help
Workshop;$(FrameworkSDKDir)bin;$(FrameworkDir)$(FrameworkVersion);$(VSInstallDir);$(VSInstallDir)\SDK\v2.0\bin;$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)|x64|$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(VCInstallDir)PlatformSDK\bin;$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML
Help
Workshop;$(FrameworkSDKDir)bin;$(FrameworkSDKDir)lib\win64;$(FrameworkDir)$(FrameworkVersion);$(FxCopDir);$(PATH)|Pocket
PC 2003
(ARMV4)|$(VCInstallDir)ce\bin\x86_arm;$(VCInstallDir)bin;$(VCInstallDir)PlatformSDK\bin;$(VSInstallDir)Common7\Tools;$(VSInstallDir)Common7\IDE;$(VSInstallDir)Common\Tools;$(VSInstallDir)Common\IDE;$(VSInstallDir);$(FrameworkSDKDir)Bin;$(PATH);|Smartphone
2003
(ARMV4)|$(VCInstallDir)ce\bin\x86_arm;$(VCInstallDir)bin;$(VCInstallDir)PlatformSDK\bin;$(VSInstallDir)Common7\Tools;$(VSInstallDir)Common7\IDE;$(VSInstallDir)Common\Tools;$(VSInstallDir)Common\IDE;$(VSInstallDir);$(FrameworkSDKDir)Bin;$(PATH);</PropertyValue>
</ToolsOptionsSubCategory>

and i did set an env variable VCInstallDir to the correct path(which i am
hoping would override whatever studio has)

C:\Documents and Settings\User>set VCInstalldir
VCInstallDir=C:\Program Files\Microsoft Visual Studio 8

Am I missing something.

Also want to metion that i do have 2 third party math libraries(*.lib) that
are not built using VS2005. But they do link fine using VS2003 and VS6.00.
Not sure if this should have any effect.

Regards
Bk
 
The issue has been resolved.

The following actions were taken to resolve the issue:
1. VS 2005 was uninstalled
2. Visual Studio .NET2003 was uninstalled
3. VS 2005 was uninstalled
4. A clean rebuild.

Looks like the initial installation order of
VS 6.0
VS 2005
VS.NET2003
throws the env in a form that confuses VS2005.
 
BK-Chicago said:
The issue has been resolved.

The following actions were taken to resolve the issue:
1. VS 2005 was uninstalled
2. Visual Studio .NET2003 was uninstalled
3. VS 2005 was uninstalled

I assume you meant reinstalled...
4. A clean rebuild.

Looks like the initial installation order of
VS 6.0
VS 2005
VS.NET2003
throws the env in a form that confuses VS2005.

That's not shocking. It's probably always best to install in order of
release date...

-cd
 
Yep!!.. So here are the steps..


Carl Daniel said:
I assume you meant reinstalled...


That's not shocking. It's probably always best to install in order of
release date...

-cd
 
Back
Top