locked
VC++ Express Win32 Application without Platform SDK RRS feed

  • Question

  • Good afternoon...

    When I select New Project in VC++ Express I given a template choice of Win32 Console Application.

    My question is, what is a Win32 Console application without the Platform SDK installed?  Is this just a Standard C/C++ library application?  If not, what is it?

    Thanks
    Monday, November 21, 2005 3:08 PM

Answers

  • Yes is it just a standard C/C++ library application. No win API programming unless you download the PSDK separatly.

    Thanks,
      Ayman Shoukry
      VC++ Team
    Monday, November 21, 2005 7:03 PM

All replies

  • Yes is it just a standard C/C++ library application. No win API programming unless you download the PSDK separatly.

    Thanks,
      Ayman Shoukry
      VC++ Team
    Monday, November 21, 2005 7:03 PM
  • Yes, you can download it here:

    http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en

    I don't tried it until now, but I think it includes MFC and ATL libraries. If anyone has tried it can tell you if it works well.
    Tuesday, November 22, 2005 8:56 AM
  • Good morning...

    I've used the PSDK a bit with MinGW (compiling sample code), and from what I know the MFC and ATL libraries that come with it are only for 64-bit Windows.  The 32-bit libraries are not free.

    Question: since WTL is free (originally from MS and now maintained on SourceForge.net) can I use it without ATL libraries?  Or I have to buy ATL first to be able to use WTL?
    Tuesday, November 22, 2005 1:32 PM
  • Hi

    All previous and new projects seem to be able to use MFC, ATL, CLR or plain Win32 and Win64.

    Just change the project settings to suit your choice - right click to properties on the project.
     
    Set the required subsystem on the linker/system options.

    You will also have to include some extra static libraries, either manually or automatically as described at http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/

    What a great product for free!  Shame about the resource editor though.

    Robert
    Tuesday, November 22, 2005 2:48 PM
  • I have tried it and I can see that for Win32 apps this isn't very usefull, because you can't use MFC, ATL or edit resources (then you can't create a Main menu).

    So, VS express is as a Framework SDK platform development, for Win32 platform I see express only capable for fullscreen DirectX applications, where you don't need to manage resources (menu, shortcut keys, etc.). You create the D3D device, the DInput, DSound, etc. and it should works well. But without resources edition hardly you can create another type of programs.

    But for a program that needs C++ (optimizations, assembler, etc.) you can use unmanaged C++ for that and use the managed code (framework platform, very easy to use) to create the user interface, that is a good combination.
    Wednesday, November 23, 2005 4:48 PM
  • Hi,
    I have found that I have to download the PSDK to be able to use the Win32api but I haven't found what are the conditions and what is the price. I need to use just a simple Win32api
    to be able to compile wxWidgets with the VC++ compiler. Is there any free alternative.

    Thanks for answer.

    Saturday, November 26, 2005 1:45 PM
  • Hi, you can get PSDK free from the following Web page;

    http://msdn.microsoft.com/vstudio/express/visualC/default.aspx

    However, keep it in mind that wxWidgets can be compiled as far as they are C/C++ based reusable codes. If they are written on top of such frameworks as ATL and MFC, you cannot compile them with EE. EE does not support such frameworks.

    Hope this helps!

    Saturday, November 26, 2005 2:05 PM
  • Good morning...

    I haven't tried it, but it appears as though Visual C++ Express supports WinForms out of the the box.  It would appear we are being steered to using .NET framework for GUI development - in fact, for all development.  This makes sense from point of view that .NET will become *the* framework for Windows, and Microsoft has to start somewhere.

    But I would think to use C++ means to go native.  To use .NET means J#, C# or VB.NET. 

    It is too bad that Microsoft gives us C++ but none of the tools (ATL or MFC, or even PSDK has to be downloaded separately) to do anything with.  The Express Editions are supposed to be introductions but it is very complicated to get started with - you have to be an expert to figure this out!!!
    Monday, November 28, 2005 2:14 PM
  • Hi, thanks for answer.
    But where have you read that PSDK is for free? And if it is, is it free also for commertial usage?

    Monday, November 28, 2005 8:07 PM
  • You can always use VC++ o develop managed or .Net applications using the /CLR switch.

    Thanks,
      Ayman Shoukry
      VC++ Team
    Monday, November 28, 2005 9:58 PM
  • Hi,

     pepa z depa wrote:

    But where have you read that PSDK is for free?
    And if it is, is it free also for commertial usage?


    As far as I know, you can download it and develop applications with it. However, I think you should consult with some documents in terms of software business. For example, please read the following information on the PSDK download page:

    Redistributable components allow new APIs to be supported on previous versions of Windows. Individual redistributable components have separate licenses that typically allow you to ship the files with your applications. The specific licensing details are covered in two files, License.txt and Redist.txt, which are downloaded with each redistributable component.

    Is there anything you can add to it, Ayman?  If so, please let us learn them.



    Tuesday, November 29, 2005 12:13 AM
  • Hi Ayman,

    I do not study so much about /CLR enabled application.  Let me  ask you  a very  simple question.

     Ayman Shoukry wrote:

    You can always use VC++ o develop managed or .Net applications using the /CLR switch.


    Herb Sutter once said that C/C++ is a concrete language and .Net languages such as C# are dynamic languages. From this, I think I can say that /CLR switch enabled codes are dynamic. Am I right here? If so, this switch  seems to provide a function that add a kind of wrapper layer to abstract ATL and MFC code base. Is my interpretation wrong?

    Many thanks in advance.

    Tuesday, November 29, 2005 12:39 AM
  • The PSDK is free and has been available as such since I can remember.

    It is independent of Visual Studio - otherwise how would users of other C compilers create Windows apps?

    Using the /CLR switch compiles your program into MSIL (Microsoft intermediate language).  When it's run, it is interpreted through the .Net runtime.
    Tuesday, November 29, 2005 3:34 PM
  • Hi Robert,

    Thank you for the advice.
    I am still interested in the following technical point;

    Point :
    As far as I know, ATL and MFC are typical Microsoft proprietary class hierarchies. How do those hierarchies relate to /CLR object model? As you might know, WMI object model is reflected in the .NET world. What about ATL and MFC? Does .NET support the same functions of those two hierarchies?

    What do you think on this, Robert?

    Thank you very much.





    Tuesday, November 29, 2005 11:59 PM
  • I really don't have much experience in the .Net world but http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx should contain more info.

    Thanks,
      Ayman Shoukry
      VC++ Team
    Wednesday, November 30, 2005 12:52 AM
  • Hello Takashi san

    I'm not sure I know enough about any of these technologies to give a good answer - I think it depends on whether you look at Windows XP and below, or Windows Vista and above.

    At present ATL, MFC and .NET provide programming models that interface with the operating system.  Therefore, they all support the same functionality, as they all expose most features of Windows.  Being C++ based, they all provide operating system access and so on, but they also all manage their modules' code through a separate programming layer.

    As a basic programming model, I believe you would choose just one (if any).  When Windows Vista is released, the API is rumoured to be something like the CLR.  The old API format will still be supported, but it will no longer be the native API that it is now, therefore, MFC and ATL (and any other program) should port successfully, but may not be optimized.

    So it looks like it's worth learning .Net for future reference, but I certainly don't advocate its use at the moment (unless you want your programs to run more slowly and use more memory and other resources - maybe even more than an MFC program!).

    I read years ago that Microsoft wanted to create a COM API for Windows.  The WMI API reflects this (although there is a lower level Device Management API), and so does the Shell API, among others.

    I've also wondered how long Windows could go on accepting the blame for errors in badly written applications.

    They probably realised that poor reference counting etc. would lead to an unstable system, so we have the CLR, an interpreted language.  Each programming language that supports it must implement a CLI, but maybe this creates a level playing field for all languages and not favour one above another.  I'm hoping that the Vista API still has a lower level COM interface - I can't imagine we're all going to be writing managed applications; that's not a nice thought for me.

    Saying that, I read the article Whats New in Visual C++ 2005 and it looks like some major improvements have been made to bring the CLI more in line with C++ programming syntax.
    Thursday, December 1, 2005 1:00 PM
  • First of all, I would like to thank you very much for a lengthy piece of advice like this. I feel more than happy. Thank you very much, Mr.Johnson.

    Let me write what I have in mind just after reading your advice:

     Mr.Robert Johnson wrote:

    No.1
    At present ATL, MFC and .NET provide programming models that interface with the operating system.  Therefore, they all support the same functionality, as they all expose most features of Windows.  Being C++ based, they all provide operating system access and so on, but they also all manage their modules' code through a separate programming layer.

    No.2
    As a basic programming model, I believe you would choose just one (if any).  When Windows Vista is released, the API is rumoured to be something like the CLR.  The old API format will still be supported, but it will no longer be the native API that it is now, therefore, MFC and ATL (and any other program) should port successfully, but may not be optimized.

    No.3
    So it looks like it's worth learning .Net for future reference, but I certainly don't advocate its use at the moment (unless you want your programs to run more slowly and use more memory and other resources - maybe even more than an MFC program!).

    No.4
    I read years ago that Microsoft wanted to create a COM API for Windows.  The WMI API reflects this (although there is a lower level Device Management API), and so does the Shell API, among others.

    No.5
    They probably realised that poor reference counting etc. would lead to an unstable system, so we have the CLR, an interpreted language.  Each programming language that supports it must implement a CLI, but maybe this creates a level playing field for all languages and not favour one above another.  I'm hoping that the Vista API still has a lower level COM interface - I can't imagine we're all going to be writing managed applications; that's not a nice thought for me.

    No.6
    Saying that, I read the article Whats New in Visual C++ 2005 and it looks like some major improvements have been made to bring the CLI more in line with C++ programming syntax.


    No.1: I cannot disagree with you.

    No.2: Let's see what will actually happen in this field.

    No.3: You remind me of this blog (plz see http://blogs.msdn.com/khen1234/archive/2005/04/19/409721.aspx). I still visit the page and review its contents. To be honest, I have not decided yet which way to go. We have a smaller market compared to US market. OOP is here to stay!

    No.5: I can understand what you are saying here. To me, CLI is seems new to me, although I do not study it so much. I am reluctant to go deep into it!

    No.6: Thank you very much for the info. I will check that again. I consider  this "... more in line with C++ programming syntax" important. Personally,  I respect Dr.Bjarne Stroustrup very much. Mr.Herb Sutter is always by him. I hope Mr.Sutter will take a leardership in line with this (plz see http://www.research.att.com/~bs/DnE2005.pdf).

    Thank you very much again, Mr.Johnson.

    Thursday, December 1, 2005 2:04 PM
  • Using Visual C++ 2008 Express with the (free) Windows SDK (previously known as the PSDK)

     

    Read this forum post for a description of what you need to do to build Win32 applications using Visual C++ Express and the Windows SDK for Windows Server 2008 and .NET Framework 3.5.  A more detailed explanation including screenshots can be found here.

     

    With the Visual Studio 2008 Express versions you can build Win32 applications right out of the box.  You no longer have to manually integrate the Windows SDK content with VC++ Express.

     

    The Visual Studio 2008 editions are seamlessly integrated with the Windows SDK.  VS2008 editions include the same Vista RTM headers and libraries that shipped in the Microsoft Windows  Software Development Kit Update for Windows Vista released in March, 2007. The SDK tools included with VS2008 editions are more recent than those that ship in the Vista Update SDK and the Windows Server 2003 Platform SDK.

     

    If you install another SDK, such as the Windows SDK for Windows Server 2008 and .NET Framework 3.5 after you install VS, you are ready to develop with the headers, libraries and tools in the SDK for Windows Server 2008.  Read this forum post if you installed the SDK before installing Visual Studio.  (It’s easy to switch back if you want.) 

     

          K a r i n   M e i e r

    Windows SDK | Samples & Community PM

    http://blogs.msdn.com/KarinM

     

    Friday, February 22, 2008 6:34 AM