Version Differences for H15

(FAQ)
(FAQ)
Line 17:
  ==FAQ==    ==FAQ== 
       
    + '''What do I need to create, build, and load applications I make for the H15?'''  
    + :First, you will want some version of Visual Studio, typically 2005 onwards, or emBedded Visual C++ 4.0 (if you're keeping it cheap and building a native application). You should also have ActiveSync 4.5 installed for deploying and debugging your application. Next, you'll want to install the H15 SDK, and make sure that your copy of Visual Studio can find the H15 SDK's libraries and headers (again, if you're building a native application). If you're building a .NET application, then you need only to reference the bcrctl.net DLL in your Visual Studio project. Finally, you'll need to create the appropriate project type; typically a Windows Application or Windows Forms Application. If you're building a .NET application, target at least version 2.0 of the .NET Compact Framework; you can target 3.5 if you want, but you will need to deploy or install it to the device when you deploy or install your application.  
       
    + '''Are there any getting started guides or how-to guides installed with the .NET SDK?'''  
    + :No, there are not. There is a .chm file where the H15 SDK was installed that describes the classes, enums, and the like available for use in your application.  
       
    + '''Where is the .NET SDK DLL?'''  
    + :Typically where you unzipped the SDK, and from there: \bcrctl\Version xxx\NETCF\bcrctl.net.dll.  
       
    + '''How do I soft-reset the device programmatically from my .NET application?'''  
    + :In C#:  
    + ::<code>[DllImport("coredll.dll", SetLastError = true)]</code>  
    + ::<code>static extern int SetSystemPowerState(string psState, int StateFlags, int Options);</code>  
       
    + ::<code>const int POWER_FORCE = 4096;</code>  
    + ::<code>const int POWER_STATE_RESET = 0x00800000;</code>  
       
    + :Then call  
    + ::<code>SetSystemPowerState(null, POWER_STATE_RESET, POWER_FORCE);</code>  
       
    + '''How do I run my application after a warm reset?'''  
    + :There are various ways. One way involves editing the registry (see this [http://msdn.microsoft.com/en-us/library/aa448482%28v=MSDN.10%29.aspx link]), where you can then do a backup of your device, and have it (and your application) persist across cold resets. Another way, which is very simple, is to just place a shortcut to your application in \FlashDisk\Startup\warm\.  
       
    + '''I want to build an application for the PC that talks to my device application. How do I do that?'''  
    + :Check out the [http://msdn.microsoft.com/en-us/library/bb545992%28v=VS.90%29.aspx Microsoft.SmartDevice] namespace. It contains classes that are used both on the device-side application and the PC-side application to communicate over ActiveSync. There is an unmanaged reference as well. If you want to get deeper into host-device communication, check out Microsoft's [http://msdn.microsoft.com/en-us/library/aa920177.aspx Remote API] (RAPI).  
       
    + '''The scan engine seems to behave incorrectly or lose settings when I attempt to scan in my application, immediately after the device wakes up from a suspend state. What gives?'''  
    + :Check out the IsSysBusy() function. It returns a boolean, depending on whether or not the barcode engine is currently undergoing its reinitialization process. Attempts to scan while this is happening can essentially crash the scan engine, so waiting until IsSysBusy() returns false before your application directs the scanner to scan should alleviate the problem.  
  ==OS Release Log==    ==OS Release Log==