×

Discussion Board

Results 1 to 8 of 8
  1. #1
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    Lightbulb Tips on using NDS 1.1

    NDS 1.1 has been superceded by the next version of the product. The new version is called Carbide.vs 2.0. Even though the product has undergone a name change, Carbide.vs is the successor to NDS and will work with your old NDS projects.

    Some of the new features:
    - Nokia S60 3.0 support (Beta currently, Final will become supported after the final SDK has been released)
    - Support for non-English versions of VS (however we have only tested this on the French version)
    - Improved installation in multi-user environments such as universities etc. Carbide.vs only needs to be installed and registered once on each PC regardless of number of users (installation and registration must be done from an admin account)
    - Using Carbide.vs does not require admin rights in most cases (this mainly requires some configuration of the SDK emulators)
    - Improved support for the compiler used for WINSCW builds, the compiler errors now find their way into the VS Task list, as do a few other types of errors as well

    The main difference in usage is that in Carbide.vs you need to select whether a project is "Classic" (Classic means SDKs based on Symbian OS versions prior to Symbian OS 9) or "Symbian9" when you create a new project. Old NDS projects automatically will be converted to "Classic" projects. If you need to co-develop an application on both a Classic and a Symbian9 SDK, check out the "Clone" functions that creates a Symbian9-based parallel project for a Classic project.

    -------------------------------------------------------------------------

    This message contains a few tips on using the Nokia Developer's Suite for Symbian OS 1.1. The tips have been created based on user feedback, thanks to all who have commented. Hopefully this helps you to use NDS more efficiently.

    More information on NDS related issues can be found in the Release notes, accessible via the main NDS download page: http://www.forum.nokia.com/main/0,,034-902,00.html

    If you have installed the NDS on-line help (strongly recommended), you will also find a section on NDS troubleshooting there.

    Before proceeding, also check out the very good post by one of the Forum members (thank you, vioccc!): http://discussion.forum.nokia.com/fo...threadid=64646

    1. How do I handle C code in NDS?

    NDS does not support the use of C-code (files with the extension .c) but you can still work with C-files using NDS. These NDS features support C-files:
    - importing a project that includes .c files (source statements in the .mmp file point to .c file)
    - creating your own Item or Project templates that create .c files (see the Tenplate creation guide for details)
    - creating projects that contain .c files from a template (with limitation as below)
    - building WINS/WINSCW
    - building ARMI/THUMB provided automatic .mmp update has been disabled

    What does not work is that the .mmp file update (both manual and automatic) does not support .c files in the project. This results in that the .mmp file will not contain the required SOURCE staments for .c files or if they were in the .mmp file, they will be removed. This would typically result in target builds for ARMI or THUMB to fail.

    As a workaround you can do as follows:
    a) create your project using import or based on templates that you have written yourself
    b) edit project adding files etc.
    c) before you need to build, manually run the .mmp update (point at the project .mmp file and right-click, choose "Update .mmp file" from menu), this will update other aspects of your project except .c files.
    d) manually add the correct source statements for the .c files to the .mmp file
    e) turn off automatic .mmp file update, this is done from the menu Project->NDS Properties, unckeck "Update .mmp file", click OK. This will disable automatic .mmp update for the project (other projects will not be affected), , this will prevent NDS from removing the manually added source statements from the .mmp file.
    f) build as normal
    e) if you change project content (ie add new files etc) repeat steps c) and d) when ever needed (note that the manual .mmp file update will removed the SOURCE statements referring to .c files each time it is used).

    2. My .mmp file uses IFDEF's, what should I do?

    NDS does not support IFDEF's in the .mmp file. If they are used, they are ignored by the .mmp update and by builds targeting the emulator. Builds targeting the phone (eg ARMI or THUMB) do obey the IFDEF's.

    The way NDS supports multiple variants of .mmp files is by allowing a project to contain a number of .mmp files and then allowing the developer to easily switch between different files. The .mmp file in use is defined in the NDS Properties (found in the Project menu). The selection is valid for the given project for all targets.

    If you need to maintain multiple project configurations that need different .mmp files, you can do that as follows:
    a) create a new .mmp file into the project, the easiest way to do this is to just make a copy of your .mmp file under a different name. There is also an Item template for creating a skeleton .mmp file into a project. It is accessed via the Add -> Add New Item -> Visual C++/Nokia Symbian -> Add New Nokia Symbian Item wizard.
    b) edit the new .mmp file as appropriate. Note that you can use the automatic .mmp update on any .mmp file by selecting the appropriate .mmp file, right-click on the file and select "Update .mmp file" from the menu. If you use the automatic update, manual changes to those fields that are subject to automatic update will be changed (see NDS documentation for the list of .mmp file statements that are subject to automatic update).
    c) take the new .mmp file into use by changing the "Active .mmp file" in the Project->NDS Properties view. If you have made changes to those fields that are subject to automatic update, you should also disable automatic .mmp update (untick "Update .mmp file") in the same view, otherwise the Active .mmp file will be automatically updated at the beginning of each build.
    d) change back to the original (or other .mmp) file as needed.


    3. My application is a static library but there is an error when building for the emulator?

    There is a bug in NDS for handling static libraries. If you import a library (target type LIB in the .mmp file) or if you create a library project from a template (there is no ready made NDS templates for a static library, you must have created your own to encounter this issue), NDS will incorrectly set the Visual Studio Configuration Type.

    To correct the situation, open the Visual Studio project for the library. For each "Deb_Sx..." configuration, select the Visual Studio project Properties by pointing at the project and then right-clicking. A menu will open, select the last item "Properties". This will open up the project Property Page. Select the "General" tab (it should be selected by default). Under the "Project Defaults", the first parameter is Configuration type. This is incorrectly set by NDS to ".dll". To correct the situation, select the field to activate a drop-down and change the Configuration type to "Static Library (.lib)".

    Note that the even though the properties seem to be for the project, each configuration (as selected from the dropdown near the top of the VS window) in fact has its own set of properties so you need to do the change for each "Deb_Sxx..." configuration separately. You should NOT do it for the "Rel_Sxx.." configurations, for those the the Configuration type must always be "Makefile".
    Last edited by mitts; 2005-11-04 at 12:44. Reason: NDS 1.1 superceded by Carbide.vs 2.0

  2. #2
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    How to add an external library to your project

    If you need to add an external library to your project, you should first add it to the Visual Studio project configurations. Automatic .mmp file update is then ensuring that the information is propagated to the .mmp file.

    Do as follows:
    - Enable a "Deb_xx" configuration in the top drop down menu.
    - Select the project in the Visual Studio Solution browser
    - Right-click and select Properties at the bottom of the menu
    - Select Linker -> Input tab
    - Add any libraries that you need to the "Additional dependencies" field. Only add the name of the library, for library paths see next step. Do not remove existing library entries.
    - Make sure that the library location is pointed to in either the Linker -> General tab, "Additional Library Directories" or in the Tools -> Options -> Projects -> VC++ Directories tab, "Library file" selection. If not, then add the library directory to the "Additional Library Directories".
    - Repeat for any other "Deb_" configurations as needed

    Once you have added the library to the relevant "Deb_xx" configurations, automatic .mmp update will create a corresponding entry in your .mmp file. The entry should look like this: "/* [+] */ LIBRARY mylib.lib". The "/* [+] */" will be removed next time that an .mmp update is performed. Automatic .mmp update will perform the update automatically also when building for the phone ("Rel_xx" configurations), you do not need to add the library information to the "Rel_xx" configurations.

    See NDS Help for "Updating an .mmp file" for more info.

    If for some reason you only want to add the library to the .mmp file, then disable automatic .mmp update in the Project -> NDS Properties view. Otherwise automatic .mmp file update will remove the LIBRARY entry from the .mmp file. This is indicated by an entry that looks like this: "// [-] LIBRARY mylib.lib".

  3. #3
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    How to easily handle compilation errors with S60 FP3

    The S60 2nd Ed FP3 SDK support in NDS is based on the WINSCW (CW for CodeWarrior) SDK as this is the only SDK available for FP3. Building for the WINSCW SDK is based on the use of a special CW compiler. The WINSCW build cannot be done using the built-in Visual Studio compiler as the ABIs of the 2 compilers are different. The required compiler is installed with NDS 1.1.

    The CW compiler however does produce VS debugger compatible debug information, so debugging using the VS debugger works for FP3.

    As a result of this, when you compile using the "Deb_S60_23_WINSCW" configuration, the CW compiler gets called. In NDS 1.1, the CW compiler is not able to add errors to the Visual Studio Task list and hence you cannot click on the errors to jump to the corresponding code location. Instead the errors are shown in the output window.

    Fortunately there exists a very easy workaround for handling most compilation errors. Enable an earlier WINS SDK for your project, the S60 FP2 is probably your best choice here. Then do all your initial compilation using the WINS configurations (Deb_xxx_WINS). As this uses the built-in Visual Studio compiler, the errors will show up in the Task list and double-clicking can be used to jump directly to the error. Once you have removed most of the errors (the FP2 compilation will still flag some FP3 specifics as errors), use the FP3 configuration for the final compilations.
    Last edited by mitts; 2005-08-18 at 11:18.

  4. #4
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    Uninstall fails with Windows error 3

    If you experience a failure with uninstalling NDS and the error code is "Windows error 3", the below information provides a workaround:

    ----------- Updated ---------------------------

    On talking to our engineers, they pointed out an other solution that in my view is simpler than the one proposed by zerog.

    The root of the issue seems to be that - via some registry entry - the uninstaller ends up looking the the Java startup exe (javaw.exe) in a /bin directory under your main windows/system32 directory. So the workaround is so simply put javaw.exe there like this:

    - Locate your standard windows/system32 directory (typically something like C:/Windows/system32
    - Add a directory called /bin under the system32 directory
    - Locate the javaw.exe for your current version of Java, this is typically found either in the /system32 directory that you just located or alternatively under /Program file/Java/...
    - Copy (do not drag) the javaw.exe file to the /system32/bin directory
    You should now be able to uninstall NDS1.1 without any problems.

    ----------- End update -----------------------


    http://gamma.zerog.com/devnet_l/uT.j...jsp&itemID=396

    Note in particular the following section:

    ----------- from www.zerog.com ------------------

    This problem seems to primarily occur with NoVM installers running on Windows systems with Java 1.5 installed, though it has been reported to also happen with oother versions of Java (this is not reliably reproducable). The workaround for customers experiencing this problem would be to use the LAX_VM option to force the installer to run against a specific Java executable. The command would look as follows.

    Windows:

    >install.exe LAX_VM <path to java executable>
    Last edited by mitts; 2005-08-26 at 11:56.

  5. #5
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    Improving the usefulness of Help

    Here are a couple of hints from an other reply on how you can improve the usefulness of the Help information of NDS. Note that both tips apply to Visual Studio and will affect all projects, not just the project that you are currently working on.

    1) Disable Help Collections that are not needed any more.
    When you install NDS 1.1 help you can select which Help Collections that get installed (a Help collection is a "top level" book in the Help window, eg "Series 60 SDK 2.1 Help").

    If you later find that you do not use a specific SDK any longer you can remove the Help collection using the VSCC manager, see
    ms-help://MS.VSCC.2003/VSCCCommon/cm/CollectionManager.htm
    for more information (just past the above link into the Visual Studio Help window).

    2) Tailor Dymanic help
    For Dynamic Help, you can choose what information is included and in what order they appear in Tools -> Options -> Environment -> Dynamic Help.

    You can disable Help collections that should not be included in Dynamic help and you can change the order in which the results are presented so that information for your most important SDK is shown first.

  6. #6
    Super Contributor
    Join Date
    Sep 2004
    Posts
    1,048

    Very good tutorial on Symbian OS development using NDS 1.1

    Andreas Jakl has created a great tutorial on Symbian OS C++ development using Nokia S60 phones. He has ran the course at the university of Hagenberg in Austria. Andreas has translated the material into English (it is also available in German) and kindly agreed to make it available to FN users and developers.

    If you are looking for a jumpstart into S60 C++ development using the Nokia Developer's Suite and Visual Studio, this tutorial is a must!

    A very warm "Thank you" to Andreas!

    The material can be found here: http://developer.mopius.com/

  7. #7
    Registered User
    Join Date
    Dec 2005
    Posts
    4

    Re: Tips on using NDS 1.1

    I am having problem creating the SIS files from VS.NET 2003. Please help.

  8. #8
    Registered User
    Join Date
    Jan 2006
    Posts
    22

    Re: Tips on using NDS 1.1

    Dear Mr Mitts
    i had already mailed you. bur received no replies, so i thought i would mail you again.
    et me explain my project.
    i am doing a project to connect a pc(server) and a mobile device (client). i should also view the whole desktop in my mobile screen and access the files ,etc..
    first thing is i need to install in VNC server in all the pcs, and than connect the mobile device.
    and we are implementing the s/w to view the desktop and access files.
    we need a GUI supportive lang so i thought vc++ would be perfect. so i need your help , about which emulator and phone simulator should i use??
    Will VC++ be more supportive than Java.
    i need an s80 series (nokia) ones.
    pls help me out
    Thanks in advance
    jan

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
×