O'Reilly logo

Professional Windows® Embedded Compact 7 by Thierry Joubert, David Jones, Samuel Phung

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

TECHNIQUES FOR LOW-LEVEL ACCESS TO MANAGED CODE

The interface between Compact Framework managed code and native code is based on synchronous function calls that you can achieve with two different techniques:

  • Explicit Platform Invocation Service or P/Invoke
  • Implicit binding of COM objects or COM Interop

You may notice that a third technique available on the desktop Framework called It Just Works, or IJW, is not listed here; this is because it requires managed C++, which is not available in the .NET Compact Framework.

In both cases, P/Invoke or COM Interop, the Compact Framework needs to perform specific operations on cross-frontier function calls for type checking and translation purposes; as a consequence some specific design is required when building the interface. The good news is that special helper classes exist in the Compact Framework to reduce the effort of the developer.

The next paragraphs present managed code interoperability to access the Compact 7 Watchdog Timer driver presented in Chapter 31, “Interrupts.”

Using P/Invoke

To execute native code from a managed application, you simply need three elements:

  • A native DLL exporting a function including this code.
  • Declare usage of the .NET InteropServices.
  • Declare a static managed method referencing the exported function.

All Win32 API calls are exposed by the Compact 7 system DLL coredll.dll; therefore a call to CreateFile requires only a single declaration. Your Smart Device application written in C# can open a driver ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required