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".