wiki:Getting-Started/Windows-Phone

Version 5 (modified by nanang, 6 years ago) (diff)

Add info about assert problem on native debugging

Getting Started: Building for Windows Phone

  1. Build Preparation
  2. Requirements
    1. Tools and SDKs
    2. Host requirements
    3. Configuring the Windows Phone device for Development
  3. Building and running the Projects
  4. Debugging Application
    1. Assert Problem on Debugging Native Code
  5. Other References

Build Preparation

Requirements

Tools and SDKs

The Visual Studio based project files can be used with one of the following tools:

  • Microsoft Visual Studio 2012. Tested on Professional and Express version.

In addition, the following SDK is needed:

Host requirements

For the host, the following are required:

  • Operating System type : 64-bit Windows 8 Professional or higher.

Configuring the Windows Phone device for Development

  • For the rest of this tutorial, we will assume that you already have the Windows Phone target device configured for development. If not, follow these instructions.

Building and running the Projects

Follow the steps below to build the libraries/application using Visual Studio:

  1. Open pjproject-vs11.sln solution file.
  2. Set pjsua_wp as Active or Startup Project.
  3. Set ARM as the target platform.
  4. Select Debug or Release build as appropriate.
  5. Build the project. This will build pjsua_wp application and all libraries needed by pjsua_wp.
  6. Run/deploy the pjsua_wp application on a registered Windows phone device.
  7. You will see telnet instructions on the device's screen. Telnet to this address to operate the application. See PJSUA CLI Manual for command reference.

Debugging Application

To Debug native(C/C++) part of the application:

  • Set the Debugger type of pjsua_wp project properties [Debug menu] to Native Only.

To Debug managed(C#) part of the application:

  • Set the Debugger type of pjsua_wp project properties [Debug menu] to Managed Only.

Assert Problem on Debugging Native Code

As described here, assertion will cause process exiting (instead of just stopping). Adding the following code in the application would make process stopping on assertion:

#ifndef NDEBUG   
signal(SIGABRT, [](int)
{
   __debugbreak();  
}); 
#endif

Other References