none
Visual Studio 2015, Native C++, Can I install A CE 6.0 SDK? RRS feed

  • Question

  • I have an application that I am currently maintaining in VS 2008.
     It is native C++ / Win32 (no .NET, MFC,....).
     This is a single set of source code (with a couple of #defines) that supports:
     Desktop:
     1.) XP Sp3.
     2.) Windows 7.
     3.) Windows 8.
     4.) Windows 8.1
     5.) Windows 10.
     Compact:
     7.) Windows CE 6.0 R3 (x86)
     8.) Windows Embedded Compact 7 (x86)
     9.) Windows CE 6.0 R3 (ARM)

    I want to attempt to maintain this application in Visual Studio 2015.

    I will ignore my issues with the desktop operating architectures and focus on the
     Compact architectures:
     1.) The Windows CE 6.0 R3 (x86) and Windows Embedded Compact 7 (x86) are both built against
         the same 'generic' SDK that I produced from a Windows CE 6.0 R3 machine.
     2.) Windows CE 6.0 R3 (ARM) is built against an SDK that was produced from a clients ARM device.

    In my current (VS 2008) configuration Platform Builder is not required on the machine that is doing
     the build. All I have on that machine is:
     1.) Visual Studio 2008.
     2.) Windows 7.1 SDK.
     3.) The (installed) 'generic' CE 6.0 (x86) SDK.
     4.) The (installed) CE 6.0 (ARM) SDK.

    I would think it would be able to maintain this application in Visual Studio 2015.
     Is this possible?

    All I want installed on the machine that is doing the build:
     1.) Visual Studio 2015 (With the associated 8,8.1,10 SDK's).
     2.) Windows 7.1 SDK.
     3.) The 'generic' CE 6.0 (x86) SDK.
     4.) The CE 6.0 (ARM) SDK.

    My first issue is that I cannot figure out how to 'install' the CE 6.0 SDK's
     so Visual Studio 2015 see's them!

    The machine I am testing this on already has Visual Studio 2008 installed and both
     of the CE 6.0 SKD's installed (they are located: C:\Program Files (x86)\Windows CE Tools\wce600).
     I would think that Visual Studio 2015 would see them?

    Any help is greatly appreciated.

    Thanks.

    Monday, January 4, 2016 2:45 PM

Answers

All replies

  • You don't.  The latest version of Visual Studio that can produce CE6 compatible native applications is Visual Studio 2008.  If you want to use a single set of sources for your program you are stuck.  Even if you could install the CE6 SDK in VS2015 you would still have to use the same VS2005-era C++ compiler so the only thing you would gain is a newer IDE.  The current C++ compiler produces binaries with an incompatible ABI for Windows CE. (Incidentally this is why you cannot use ARM or x86 binaries compiled for CE6/CE7 under WEC2013 -- you have to recompile)

    For our work, we pretty much use VS2015 and VS2008.  We use VS2015 for everything on the desktop and for WEC2013 and VS2008 for the CE6 stuff. (we would use VS2008 for CE7 as well, if we were using that OS). 

    In many cases we use the same source files for the desktop, CE6 and WEC2013 although that forces us to avoid all C++11 constructs, and use a very old version of Boost.  In short:  it sucks, but that is what you have to work with.

    Monday, January 4, 2016 2:53 PM
  • Thanks SimonRev.

    First I have to apologize for starting this thread (started it a little to early!). I am currently working on something else and will not be able to get back to this issue for a week. So lets all be patient.

    No argument here, I believe you when it relates to the desired configuration I gave you. I am just proposing another solution for my predicament. I do not want this 'proposed as answer' to be marked as 'Answered' yet.

    I will change my machines configuration to:

     1.) Visual Studio 2015 (With the associated 8,8.1,10 SDK's AND Visual Studio 2015 - Windows XP (v140_xp)).
     2.) Windows 7.1 SDK.

     3.) The 'generic' CE 6.0 (x86) SDK.
     4.) The CE 6.0 (ARM) SDK.

    I will create add to a configuration for WinCEx86. I will change the Configuration Properties->VC++ directories to point to the 'Generic' CE 6.0 x86 SDK. I will see what happens. I am pretty sure this will not work as I do not see where I will get the cl.exe (C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin from vs2008) which I believe is the required compiler. So if/when this fails (and I believe it will) I will:

    I will change my configuration to:

    1.) Visual Studio 2015 (With the associated 8,8.1,10 SDK's AND Visual Studio 2015 - Windows XP (v140_xp)).
    2.) Windows 7.1 SDK.

    3.) Visual Studio 2008

    4.) The 'generic' CE 6.0 (x86) SDK.
    5.) The CE 6.0 (ARM) SDK.

    I will change the configuration Properties->VC++ directories to point to the 'Generic' CE 6.0 x86 SDK and the Visual Studio 2008 (v90) Platform toolset. Perhaps this will work for the 'generic' CE 6.0 (x86) SDK?

    Thanks.

    Tuesday, January 5, 2016 5:24 PM
  • First, the proposed solution is the official Microsoft solution.

    Second, you are the one that would mark it as answered, so stay calm.

    Third, Werner Willemsens managed to figure out and document how to build with VS2012 some time ago.  See http://geekswithblogs.net/WernerWillemsens/archive/2013/09/13/building-windows-ce-6-or-7-smart-device-application-with.aspx for more.  I have never tried it, so I don't know if it works - or how it would relate to VS2015.



    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG http://geekswithblogs.net/bruceeitman
    I work for Eurotech

    • Marked as answer by RSullivan59 Thursday, January 7, 2016 6:28 PM
    Tuesday, January 5, 2016 6:30 PM
    Moderator
  • Thanks for the link Bruce.

    I had to change a few things from the instructions. Perhaps it was due to differences between VS2015 and VS2012? Also had to add a path to the RC.exe from vc90.

    Anyway I have successfully built and run my application. My environment now contains:
    - Visual Studio 2015.
    - Visual Studio 2008 (for the cl.exe lib.exe link.exe rc.exe .....)
    - My 'generic' Windows CE 6.0 SDK

    I am able to build:
    - Several resource only .Dll's used by my native C++ application.
    - My native C++ application.

    My native C++ application built via the 2015 IDE runs on Windows CE 6.0 and Windows Embedded Compact 7 devices.

    Though I have Visual Studio 2008 installed I will no longer normally use it's IDE to maintain
    the code. I will use Visual Studio 2015 IED to maintain the code.

    I am also aware that I will be unable to debug the application utilizing Visual Studio 2015.
    If I want to debug it I will need to use Visual Studio 2008.

    So now I have an IDE to maintain a single set of source code for:
     1.) XP Sp3.
     2.) Windows 7.
     3.) Windows 8.
     4.) Windows 8.1
     5.) Windows 10.
     Compact:
     7.) Windows CE 6.0 R3 (x86)
     8.) Windows Embedded Compact 7 (x86)

    I am now going to implement the Windows CE 6.0 R3 ARM tool set which I am sure will work and
    allow me to maintain a single set of source code for all of my supported platforms.

    Thanks All.

    Thursday, January 7, 2016 6:27 PM
  • Hi,

    Could you tell us exactly how you did this because I have the same problem ? Also, which SDK did you download for this to work ?

    Thanks in advance.

    Thursday, January 5, 2017 1:48 PM