Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Languages / Managed C++ / August 2006

Tip: Looking for answers? Try searching our database.

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

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
BK-Chicago - 04 Aug 2006 15:06 GMT
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.
Carl Daniel [VC++ MVP] - 04 Aug 2006 22:15 GMT
>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
[quoted text clipped - 16 lines]
> 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
BK-Chicago - 04 Aug 2006 23:35 GMT
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

> >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
[quoted text clipped - 23 lines]
>
> -cd
BK-Chicago - 16 Aug 2006 23:01 GMT
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.

> Thank you for looking into this.
>
[quoted text clipped - 83 lines]
> >
> > -cd
Carl Daniel [VC++ MVP] - 17 Aug 2006 01:34 GMT
> 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.
>
[quoted text clipped - 3 lines]
> 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
BK-Chicago - 17 Aug 2006 22:19 GMT
Yep!!.. So here are the steps..

> > 1. VS 2005 was uninstalled
> > 2. Visual Studio .NET2003 was uninstalled
> > 3. VS 2005 was re-installed

> > The issue has been resolved.
> >
[quoted text clipped - 17 lines]
>
> -cd

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.