Friday, 20 April 2012
Res2Res Errors During CE 6.0 Makeimg
Wednesday, 28 March 2012
Debugging CE7 apps using VS2005
If you want to build apps for a CE7 system using visual studio 2005 you can (normally you’d use 2008) if you have an SDK for the Windows Embedded Compact 7 (WinCE7) platform and you follow these steps!
I was getting the following error on linking:
corelibc.lib(armsecgs.obj) : fatal error LNK1103: debugging information corrupt; recompile module
- Install the hot fix for VS2005 from http://support.microsoft.com/kb/949009
- Fix any build issues in the project arising from defines not available in VS2005, i.e.:
#define __INLINEISEQUALGUID__
Tuesday, 10 May 2011
Windwos Embedded Compact 7
You can find the article here at http://www.mtemag.com/ArticleItem.aspx?Cont_Title=Real-Time+Operating+Systems%3a+Take+seven
Please have a read and let me know what you think.
>> Nigel
Friday, 11 February 2011
Visual Studio 2005 deploy error after downloading a managed code application to a Windows CE6 R3 device
After deploying a managed code application to a windows CE6 R3 device you get a deployment error something like:
Deploying ‘C:\will\VBProjects\CEApp\bin\Debug\HelloWorld.exe’
Deploying ‘C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\windowsce\diagnostics\System_SR_enu.cab’
Post-deploy error 0×00000001 returned after calling ‘\Windows\wceload.exe /noui \Windows\System_SR_enu.cab’.
========== Build: 1
Visual Studio 2005 will attempt to download the .NET CF 2.0 cab file (System_SR_enu.cab) and automatically install if the device does not already contain the run time (however the OS dependencies for the .NET CF 2.0 must be included in the WinCE6 image). It appears that the version of .NET CF 2.0 included with Visual Studio 2005 SP1 is not compatible with the R3 release of Windows CE6. To fix the problem, shutdown all instances of Visual Studio 2005 and simply download and install .NET CF2.0 SP2:
http://www.microsoft.com/downloads/en/details.aspx?familyid=AEA55F2F-07B5-4A8C-8A44-B4E1B196D5C0&displaylang=en
Try again and everything should be fine.
A successful deployment should then look something like:
DeviceApplication1 -> C:\Documents and Settings\XPMUser\My Documents\Visual Studio 2005\Projects\DeviceApplication1\DeviceApplication1\bin\Debug\DeviceApplication1.exe
—— Deploy started: Project: DeviceApplication1, Configuration: Debug Any CPU ——
Deploying ‘C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\windowsce\wce500\armv4i\NETCFV2.wce5.armv4i.cab’
Deploying ‘C:\Documents and Settings\XPMUser\My Documents\Visual Studio 2005\Projects\DeviceApplication1\DeviceApplication1\bin\Debug\DeviceApplication1.exe’
Deploying ‘C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\windowsce\diagnostics\System_SR_enu.cab’
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Deploy: 1 succeeded, 0 failed, 0 skipped ==========
Monday, 10 January 2011
Keeping your Smartphone alive for background processing
Wednesday, 1 December 2010
Why's my Alpha blend not working!!
That was what I was saying as I do an AlphaBlend() of a 32 bit bitmap nicely saved in Photoshop, the result was a bitmap with white as the 'background' instead of a nice transparent edge.
I've seen this before and moving between Desktop and WinCE I seem to have slightly different results with Alpha blending and image factory stuff. Anyhow I found a few people mentioning that you need to pre-multiply any alpha per pixel before using the Alpha blend (which has an alpha on the image as well). Sceptical but tried it and hey presto my bitmaps now render perfectly.
Here is what I do in Win32:
HBITMAP hbmp = CreateDIBSection(hdcScreen, lpbi, DIB_RGB_COLORS, &pvImageBits, NULL, 0);Then just AlphaBlend on my bitmap...perfect, but why doesn't AlphaBlend handle the 32 bit bitmaps anyhow that's what I don't understand.... !
const UINT cbImage = cbStride * height;
if (FAILED(ipBitmap->CopyPixels(NULL, cbStride, cbImage, static_cast<BYTE *>(pvImageBits))))
{
// couldn't extract image; delete HBITMAP
DeleteObject(hbmp);
hbmp = NULL;
}
// Pre multiply RGB on alpha channels else alpha blit won't work!
//
if (lpbi->bmiHeader.biBitCount == 32)
{
BYTE* linePtr = (BYTE*)pvImageBits;
for(int y=0;y<height;y++)
{
BYTE* ptr = linePtr;
for(int x=0;x<width;x++)
{
BYTE alpha = *(ptr+3);
*(ptr+0)=(*(ptr+0) * alpha) / 255;
*(ptr+1)=(*(ptr+1) * alpha) / 255;
*(ptr+2)=(*(ptr+2) * alpha) / 255;
ptr+=4;
}
linePtr += cbStride;
}
}