Using the Plaform SDK with Visual Studio.Net 2003

I wish to use the "Windows Server 2003 SP1 Platform SDK" with Visual Studio.Net 2003
This is because the DirectShow software has been moved from the DirectX SDK to the Platform SDK (and I wish to use the latest 'august 2005' version of the DirectX SDK and also DirectShow, so I need both SDKs installed)

My problem is that having registered the Platform SDK's directories with Visual Studio, a re-compile of my previously working c++ code now generates the following error.

c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlsocket.inl(26): error C3861: 'FreeAddrInfo': identifier not found, even with argument-dependent lookup

As far I as I know, my code does nothing with "atlsocket" so I am at a loss as to how to fix this (presumably) library version related issue.




Answer this question

Using the Plaform SDK with Visual Studio.Net 2003

  • Steve Camsell

    Dear Nikola,

    The directories are as follows...

    Executable
    C:\Program Files\Microsoft Platform SDK\bin\winnt
    C:\Program Files\Microsoft Platform SDK\bin
    C:\Program Files\Microsoft DirectX 9.0 SDK (February 2005)\Utilities\Bin\x86
    $(VCInstallDir)bin
    $(VSInstallDir)Common7\Tools\bin\prerelease
    $(VSInstallDir)Common7\tools
    $(VSInstallDir)Common7\ide
    C:\Program Files\HTML Help Workshop
    $(FrameworkSDKDir)bin
    $(FrameworkDir)$(FrameworkVersion)
    C:\WINDOWS\system32
    C:\WINDOWS
    C:\WINDOWS\System32\Wbem

    Include
    C:\Program Files\Microsoft Platform SDK\include
    C:\Program Files\Microsoft DirectX 9.0 SDK (February 2005)\Include
    $(VCInstallDir)include
    $(VCInstallDir)atlmfc\include
    $(VCInstallDir)PlatformSDK\include\prerelease
    $(VCInstallDir)PlatformSDK\include
    $(FrameworkSDKDir)include

    Libraries
    C:\Program Files\Microsoft Platform SDK\lib
    C:\Program Files\Microsoft DirectX 9.0 SDK (February 2005)\Lib\x86
    $(VCInstallDir)lib
    $(VCInstallDir)atlmfc\lib
    $(VCInstallDir)PlatformSDK\lib\prerelease
    $(VCInstallDir)PlatformSDK\lib
    $(FrameworkSDKDir)lib


    The four build errors that I get are as follows...
    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlsocket.inl(26): error C3861: 'FreeAddrInfo': identifier not found, even with argument-dependent lookup

    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlsocket.inl(42): error C3861: 'FreeAddrInfo': identifier not found, even with argument-dependent lookup

    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlsocket.inl(52): error C2039: 'GetAddrInfo' : is not a member of 'operator``global namespace'''

    c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include\atlsocket.inl(52): error C2660: 'ATL::CSocketAddr::GetAddrInfo' : function does not take 4 arguments



     



  • DevMatt

    Try to define WINVER at the beginnig of stdafx.h

    #define WINVER 0x0502

    I had the same problem on W2003 with HTTPSVR sample.

    Leonid


  • Joe Gradecki

    Please try the suggested above workaround. This is conflict of atlmfc from PSDK and VS. Do this:

    Include
    $(VCInstallDir)include
    $(VCInstallDir)atlmfc\include
    C:\Program Files\Microsoft Platform SDK\include
    C:\Program Files\Microsoft DirectX 9.0 SDK (February 2005)\Include
    $(FrameworkSDKDir)include

    Libraries
    $(VCInstallDir)lib
    $(VCInstallDir)atlmfc\lib
    C:\Program Files\Microsoft Platform SDK\lib
    C:\Program Files\Microsoft DirectX 9.0 SDK (February 2005)\Lib\x86

    That should do it.

    Nikola



  • SanDiegoKiss

    Hey, i faced the same errors as u. I tried all the suggested solns mentioned but none worked. How did u solved it finally Thx
  • Dennis Yang

    Dear Nikola,
    Thank you for your reply, unfortunately that did not change the errors received.

    The closest I have come to a solution so far is to remove all references to the default include directories and to just add the ones from the Platform SDK.
    C:\Program Files\Microsoft Platform SDK\include
    C:\Program Files\Microsoft Platform SDK\Include\atl
    C:\Program Files\Microsoft Platform SDK\Include\crt
    C:\Program Files\Microsoft Platform SDK\Include\mfc
    C:\Program Files\Microsoft DirectX 9.0 SDK (February 2005)\Include

    This gets rid of all the errors except the following...
    c:\Documents and Settings\nl1\My Documents\Personal\My Projects\Strider\BrainRegion.h(2): fatal error C1083: Cannot open include file: 'afxtempl.h': No such file or directory

    This error occurs because my code uses the template library and the SDK does not seem to have the template library header file, or it has been renamed. Any suggestions

    Yours Sincerely
    Nicholas Lee

  • GreenHorse

    That atlsocket.inl conflicted with something related to the TCP/IP and I just commented out its insides, all of them. As a result the project was successfully compiled.


  • Ralf Hedler

    Could you please post your INCLUDE environment variable when you build this project If this is 32bit code, it should be something like \vc\include, vc\atlmfc\include, psdk\include, directx\include.

    Nikola

  • aprivate

    Hi,

    It seems the problem in IDE.You just close all the IDE and register the PSDK then reopen ur sol in fresh IDE it may work

  • Rocinante8

    Actually, I eventually decided that this problem had wasted too much of my valuable time and I gave up on the 'august 2005 release' and used an older version of the DirectX sdk which still included DirectShow. This older version works without any problems.

    There appears to be no (obvious) way to make the "Windows Server 2003 SP1 Platform SDK" work with Visual Studio.Net 2003

    This integration problem 'may' be becuase Microsoft is pushing other software technogies to do the same thing as DirectShow and is retiring DirectShow. That's why it got pushed into the platform sdk.

    These new technologies however only work on XP and not everyone uses XP.



  • Using the Plaform SDK with Visual Studio.Net 2003