I need to install the Windows Embedded CE 6.0 package that works with Visual Studio 2005 because I need to upgrade an old driver that runs under CE 6.0. I understand that Microsoft does not support this CE package any longer and, in fact, they no longer provide the installation files for CE 6.0
Where can I get the Windows Embedded CE 6.0 installation files??? They can be in an ISO file or whatever format is available.
I'm not sure if I understood your question right. By package you mean BSP (Board Support Package)?
If you are new to CE, you will need a brief explanation before get started.
The Windows CE 6.0 itself doesn't have exactly installation files. The runtime system is built through a toolkit called Platform Builder. As "input" for platform builder, you select which components your runtime image will have (including drivers) and as "output" is created a binary image of your system. You may transfer your runtime image to the device with a few different methods.
Regarding drivers, they usually are distributed through BSPs. BSPs are built by the device maker so you could check the device manufacturer site for BSPs, but you can give a try first on the supported packages search (http://www.microsoft.com/windowsembedded/en-us/downloads/board-support-packages-for-windows-embedded.aspx).
You can get the Platform Builder Toolkit with a Microsoft Authorized Embedded Distributor or through a MSDN subscription (http://www.microsoft.com/windowsembedded/en-us/evaluate/how-to-buy-windows-embedded-compact-7.aspx). The Platform Builder for CE6 comes with a copy of VS2005.
Windows CE6 is currently at R3 (released in 2009) and it is supported (mainstream support) at least until 2014 (http://www.microsoft.com/windowsembedded/en-us/evaluate/windows-embedded-roadmap.aspx).
I strongly recommend you to take a look at least on http://www.microsoft.com/windowsembedded/en-us/develop/windows-embedded-ce-6-for-developers-overview.aspx. I'm not much experienced with CE6 (few months) but my personal experience says that it's a long path to code drivers for CE.
Related
Here is what I have:
Problem: Trying to connect two different 64-bit applications:
Microsoft Access 64-bit
QuickBooks Entrprise 21.0 (I'm not sure if it is actually 32-bit or 64-bit)
Using:
Visual Studio 2022 64-bit edition
VB.NET
64-bit version of QBFC15 library for QuickBooks
My thought is that when you use a 64-bit API, it would connect to a 64-bit application. I am most likely incorrect.
When I connect to MS Access in the debug 64-bit mode, it connects fine. The Intuit developer Network says you need to publish applications in the 32-bit mode. I have always used the 32-bit mode for publishing QuickBooks applications because they were 32-bit programs and, well, frankly, 64-bit applications hadn't come out yet (no old person jokes here). Anyway, I was really excited to see that the 64-bit version of a QBFC library came out (QBFC15) and they offer both 32-bit and 64-bit. So I downloaded the 64-bit version (which they recommend on their site https:\\developer.intuit.com>
So I'm thinking, hey, it's a 64-bit SDK! Yeah! So now I have this project that tells me I need to connect a 64-bit Access application to QuickBooks. When I debug, my new application connects just fine to MS Access in the 64-bit mode! Yeah! But the 64-bit Intuit SDK needs to be published in the 32-bit mode!!!! I'm confused. I know that they have put the cart before the horse and I know that they must still be running QuickBooks Enterprise in the 32-bit mode but come on. Putting out the SDK before the commercial product comes out to use it one? (I'm done whining now...got to get it out somehow!).
So how am I to connect my application to both "64-bit" programs when one errors in the 32-bit mode and the other errors in the 64-bit mode?
The programming isn't the issue, but this scenario seems really problematic. Do I tell the customer they need to downgrade their Microsoft Office to the 32-bit mode version? That would be an easy answer I guess, but it sure makes me look bad. Any other suggestions out there that could help me in this would be much appreciated.
If you running desktop edition of QuickBooks, then if you are running a x32 bit version of QuickBooks?
Then that means automation and working with the desktop edition means your software ALL MUST remain x32.
Only in 2022, have they rather recent upgraded and offer a x64 bit verison.
So, you have to check which desktop version of QuickBooks you are running. (most up to rather recent have been x32 bits - for a VERY long time).
So, what determines what QBFC library, what version of Access, and quite much vb.net?
You must continue to force your vb.net projects to run as x86, and NOT use "any" CPU and not use x64.
So, what will determine what all of your code is to run as?
It will be the desktop edition of QB that determines this.
It is of ZERO use to adopt office x64, access x64, or run your vb.net software, and the QBFC sdk and library as x64 bits if QuickBooks remains as x32.
(you using the wrong bit size and architecture here).
so, you have to be 100%, and in fact 200% sure
now, if QBFC is hitting the server database for QuickBooks, then that can be x64 bits but if you using the QB sdk and QBFC? Then that all must remain x32 bits until such time you upgrade the desktop edition of QuickBooks.
So, you have to REALLY but REALLY find out if in fact if you are running x32 QuickBooks for desktop, or x64 for desktop.
The version of QuickBooks and what version you you THEN much choose of QBFC library, vb.net, Access/office then again will have to match the bit size of QuickBooks desktop.
So from everything else from down to Access to vb.net to QBFC then all again much match the version of QuickBooks for desktop you have installed.
Now, if vb.net, Access you use is NOT to interface via the QBFC .dll and SDK? Then you don't care. But, inter process communication based on so called "windows COM objects"? And say upgrading from office x32, and the associated software systems you have? You can't just out of the blue decide to jump to office x64 without say your company and IT department not knowing the difference between x32 bit software, and that of x64 bit software.
Hint: 8 bit Apple II computer has a different architecture then a 16 bit IBM PC. And going from 16 bits to x32 bits? Again, a huge and large jump.
And from x32 bit software to x64 bit software? again a huge jump.
So, while windows can happy run x32 bit software, and it been a x64 bit OS by default for 10+ years?
Well, software packages running as x32 bits, and them interfacing to x64 bit software is a whole different matter. Such software has to remain the same bit size - and you can't have different bit size process on windows such as x32 bit COM objects (ole, COM, ActiveX = same technology stack).
So keep this basic knowledge and hallmark and pillar in our industry - different bit size software systems can't talk to each other via inter-op, or so called COM object automation.
I am trying to get started on application development for my Motorola MC32N0 device running Windows Embedded Compact 7.0.
This tutorial explains that I need a Board Support Package (BSP), however I am unable to find this on the Zebra website. Is a BSP available for the Motorola MC32N0, and where can I find it?
Another question, during the installation of Platform Builder 7.0 I used a trial license key. Now if I deploy the build output to my device, will it replace the OS that is already installed, or will it just deploy the application?
I am new to Windows CE, but have a background in web development and WinForms.
For C/C++ application development, Visual Studio 2008 and the Motorola SDK will suffice.
BSP's on the other hand are for developers working on low-level code such as the kernel OAL and device drivers. Platform Builder 7.0 is a plug-in to Visual Studio 2008 that enables building and debugging BSP code, and is not required for application development either.
If you only intend to develop C# applications, you may not even need the Motorola SDK, but could target just a generic Windows CE device in Visual Studio.
Please can anyone tell me if it's possible to statically link in all the directx libs.
Basically can i build an exe that will run on any windows system that does not have the directx redistribu installed?
As noted, you can't statically link the "DirectX" libraries i.e. Direct3D, DirectInput, DirectSound, etc. That said, depending exactly on your definition of "any Windows system" you actually do not need the DirectX "Redist". It doesn't do what you think it does. See Not So DirectSetup for the a longer discussion of this.
If you use Direct3D 9 or later, DirectDraw, DirectSound 8, DirectInput 8, DirectShow, DirectMusic, DirectPlay, etc. i.e. what historically has been called "DirectX 9.0c" (aka the Summer 2004 release), those bits are always present on Windows starting with Windows XP Service Pack 2, Windows Server 2003 Service Pack 1, and Windows XP x64 Edition. Therefore, as long as you require those as your minimum OS (or something greater), you don't need any DirectX Redist because it doesn't actually install any of those things. Take a look at What's in a version number? for examples of the "you must be this high to ride this ride" checks that guarantee this. Supporting Windows 2000, Windows 9x, or Windows ME or even Windows XP RTM/SP1 these days seems way out of scope.
For Direct3D 11, read Direct3D 11 Deployment for Game Developers. Direct3D 11.0 is built into Windows 8.x and Windows 7. It is on Windows Vista Service Pack 2 with KB 971644 installed which was pushed by Windows Update so it's basically everywhere.
Where it gets murky is if you are using other stuff in the DirectX SDK:
All versions of D3DX9, D3DX10, and D3DX11 are deprecated (see MSDN). If you depend on these, you still need the legacy DirectSetup. The good news is that with Direct3D 11, you don't need to use it at all. Instead see Living without D3DX for a bunch of new support libraries that are statically linked to your application as well as available shared-source--which includes DirectX Tool Kit mentioned in the other answer.
The HLSL compiler is not actually in D3DX anymore, and if you use the Windows 8.x SDK version of D3DCompile you can deploy that DLL side-by-side with your application avoiding the need for the DirectX Redist. See HLSL, FXC, and D3DCompile. Note that this DLL only supports Windows Vista or later, so runtime HLSL compilation on Windows XP still requires the legacy DirectX SDK and DirectX Redist. If you pre-build your shaders and are not using the Effects (FX) framework, this is not an issue.
If you use XINPUT, you should use XINPUT 9.1.0 (the original version) unless you are specifically using the headset audio features of XInput 1.3. This version is built into Windows Vista and later. If you require Windows 8.0 or later, you can use XInput 1.4. See XINPUT and Windows 8. Note that Server editions of Windows do not have XInput 9.1.0 or 1.4.
If you are using XAUDIO2, then you have a choice to make. If you require Windows 8.0 or later, then you can use XAudio 2.8 as it's built-in to the OS. Otherwise you need to use XAudio 2.7 which still requires the legacy DirectX REDIST to deploy. See XAudio2 and Windows 8.
If you use XACT, then you have to use the legacy DirectX REDIST as that's the only way to deploy the XACT engine.
If you are using the legacy DirectX Managed Assemblies for .NET 1.1, you should move to something else like SlimDX or SharpDX for a host of reasons. See DirectX and .NET
If you are making use of other "DirectX" things, you should read DirectX SDKs of a certain age for some guidance. In short: Don't use Direct3D Retained Mode, DirectPlay Voice, or DirectX 7/8 Visual Basic 6.0 as they aren't in the OS starting with Windows Vista.
No, the DirectX redist binaries are not available as static libs, though most of the useful functionality is now available as source in the DirectX Tool Kit.
I'm having problems migrating a PowerBuilder application from XP to Windows 7.
We've built the application in PowerBuilder on Windows XP, and when we attempt to install components in to component services on Windows 7 machines, we get compatibility errors. Everything works great on Windows XP. But I think because the DLL's on 7 are so different, it's having problems.
If the program was built using a PowerBuilder IDE in a Windows 7 environment, would that possibly fix the problem?
The application is divided into
- a server component running on Server 2003
- a client component which installs sucessfully on Win7
- proxy components that are generated into an MSI when the server components are installed.
The problem is only the proxy. The MSI doesn't want to work on Windows 7.
Without the proxy installed on the client desktops, the client can't communicate with the server.
When I run the MSI in compatibility mode on Windows 7, I get some details of the error. Here they are
Program Compatibility Issues found Incompatible Application Fix
application CCS_Proxy_XP_Exports
Issues found Incompatible Application CCS_Proxy_XP_Exports is
incompatible.
Fix application CCS_Proxy_XP_Exports Provides steps to fix the
incompatible application. CompatMode CompatMode UserVerifySolution
User Verification of Solution Verify_NO
Detection details Collection information Computer Name: ##########
Windows Version: 6.1 Architecture: amd64 Time: Wednesday, November
14, 2012 11:56:36 AM
Publisher details Program Compatibility Make older programs run in
this version of Windows. Package Version: 1.5 Publisher: Microsoft
Windows
Program Compatibility Make older programs run in this version of
Windows. Package Version: 1.0 Publisher: Microsoft Corporation
If I view more details on the event log, I get the following
“Product: Client Communications (Application Proxy) -- Error 1928.
Error registering COM+ Application. Contact your support personnel
for more information.”
General idea
Actually dll on the win7 platform are not different from previous ones. There can be differences related to the multiple and different C runtimes that live now in the WinSxS dll-hell directories but this should not impact powerbuilder (as I can say from my 11.5 classic release experience).
I suspect that you might have some problems related to the UAC and or ACL management. I recently upgraded some legacy PB applications by adding compatibility to the Vista / Win7 specifications.
In short : the application must run without needing administrative privileges, and must not try to modify data in privileged places like c:\ or c:\windows.
Thus everything must no more be installed in program files directory. The application binaries can be deployed in program files but if the application need to create / modify some files they must be deployed in a ProgramData subdirectory for user-shared datad and / or in the local user data files for the private data. The application has to be modified to create or find the files in the correct directories. If you do not comply to the standard, the file virtualization mechanism can hide a lack of rights and can simulate the files in a VirtualStore directory in the user local data but is just a workaround and it provides some other problems.
Com+ error
Given you error messages, if the proxy is also a PB application, given the fact that PB only produce 32bits binaries and that your system is a 64bits one, maybe that the tips to register a 32b COM+ onto a Win2008 could help you?
Thought, your proxy exe/dll file does not have manifest or manifest does not contains compatibility section. Try to add compatibility info to manifest.
I implemented the code from one of the samples in the DirectX 11 SDK from June 2010.I open my project in 2012 and then I open the sample in 2012 too,however when I run mine,it requires XAudio2_8.dll.How is thsi even possible?That's the .dll in Windows 8 and the code from the SDK is from 2010 - such .dll didn't exist back then?The weirdest thing is the SDK sample builds and runs,while my project asks for the .dll.I linked all the libs,made all the includes,I checked around the project settings,searched the whole hard drive for such a dll,nothing...What could be causing such a problem?I've also been having all sorts of other problems in the SDK under VS2012,like not recognizing types in the dx11 headers and so on.
The Windows 8.x SDK has the DirectX SDK integrated into it, which for many areas means you don't need to use the legacy DirectX SDK at all. In particular, Direct3D, DirectSound, DirectInput, etc. all have the proper headers and libs in the Windows 8.x SDK.
The DirectX SDK is quite venerable, so there are a number of older things missing: no DirectMusic playback, DirectPlay, etc. I have a blog post that provides a full inventory of what happened to everything in the DirectX SDK.
Where it gets complicated is XAudio and XInput. Both XAudio 2.8 and XInput 1.4 are part of the Windows 8.x OS, but is not available on Windows 7. If you are targeting 'down-level' to Windows 7, you have to use XAudio 2.7 and either XInput 1.3 or XInput 9.1.0. This somewhat messy story is covered in two blog entries: one for XInput and one for XAudio. The good news is that most use of XInput is actually doable with XInput 9.1.0 which is part of the Windows OS starting with Windows Vista. It's XAudio 'down-level' that requires mixing the modern Windows 8.x SDK and the legacy DirectX SDK, plus having to use the legacy DirectX SDK REDIST (DirectSetup).
The root reason you are getting a 'runtime' error instead of a 'compile-time' error is that you didn't set _WIN32_WINNT to 0x0601 for Windows 7 (or 0x0600 for Windows Vista). If you had, the XINPUT.H header in the Windows 8.x SDK would automatically use the XInput 9.1.0 version and the XAUIOD2.H header in the Windows 8.x SDK would have errored out and told you it wasn't going to work for Windows 7.
Finally, I've cleaned up and reposted many of the old Direct SDK samples to MSDN Code Gallery in such a way that they don't need the legacy DirectX SDK.
The basic rule is, if you develop XAudio2 program on Win 8, use the Windows SDK, otherwise, use DirectX SDK.
If you are working on Win7, make sure
the head file XAudio2.h you are using comes from the DirectX SDK, that's something like C:\Program Files\Microsoft DirectX SDK (June 2010)\Include\XAudio2.h, not come from the Win8 SDK, something like C:\Program Files\Windows Kits\8.0\Include\um\XAudio2.h(in case you installed the Win8 SDK)
Call CoInitializeEx(NULL, COINIT_MULTITHREADED); before calling XAudio2Create, since the old version(before 2.8) of XAaudio2 was created by COM, so it does not need a .lib file, and there is no .lib file for XAudio2 before Win8.
This page below contains a detail introduction of the version of XAudio2, you can take a look.
XAudio2 Versions