Classic Projects - The traditional mode




To create a classic project, choose one of the Classic options. Classic projects are not visual, that is, they are traditional assembler programs, where you write all code and then build the project like in other IDE's. Anyway, Easy Code offers some advantages that make your work considerably easier, and for that reason you have to take into account some considerations in order to avoid errors:

If the project is a driver type, you NEVER have to include the windows.inc file, instead the ntddk.inc has to be included. Easy Code takes care of that when creating the project.

For ASMC/JWASM/UASM, MASM and POASM projects, variables can be made global to the whole project by checking the Make all variables global option in the Project Properties, so that you do not have to write the corresponding ExternDef directives. Easy Code write them internally when the mentioned option is checked.

For ASMC/JWASM/UASM, MASM and POASM projects, prototypes for all procedures in the project (Protos) are also written internally by Easy Code, so you do not have to worry about them.

When working with exe, dll and console projects, resources for your application can be made by the Resource Editor in a very easy way. The Resource Editor is not available for static libraries (lib projects) because they cannot have resources

You also can add one external compiled resource file (*.res) made outside Easy Code. If you do so, as only one resource file can be linked to the application, take into account the following considerations:

- All resources in the Easy Code Resource Editor will be ignored.
- Only one external compiled resource file (*.res) is accepted by Easy Code.
- Text files with extension *.rc (not compiled resources) ARE NOT accepted as external resources (except for being imported).
- The added *.res external file must be inside the Res subfolder of the project directory.


When saving a project for the first time, Easy Code creates a subfolder named Res inside the project directory. All image and any other file related to resources (and the external *.res file, if you add one) must be located in the Res subfolder, so that Easy Code can find them when building the project. If not, errors will be generated and project will not be built.

If you want to use the Rich Edit or the Windows Common controls, mark the corresponding check box in the Project Properties and the corresponding buttons will be shown in the tool box.

The Manifest check box specifies whether the new comon controls, available in Windows XP and later systems, will be activated. For more information, please see the Including a Manifest in the project topic.


IMPORTANT: As only one resource file can be linked to an application, if you add an external compiled resource file (*.res), it is supposed to be the one that must be linked. Consequently, all existing resources in the Easy Code's Resource Editor (if any) will be ignored.

To avoid undesired errors, all files needed for building a project, including those necessary files for Windows applications (kernel32.inc, user32.inc, kernel32.lib, user32.lib, etc.), should be added to project through the Easy Code interface (better than including them in the code) using the following menus:

Include files (*.inc;*.h) Use Project-->Add Include files (*.inc;.h) menu
Library files (*.lib) Use Project-->Add Library files (*.lib) menu
Compiled resource file (*.res) Use Project-->Add external resources (*.res) menu
Definition file (*.def) Use Project-->Add Definition file (*.def) menu


For ASMC/JWASM/UASM, MASM and POASM projects, you do not need to write the .model and option casemap directives in your code. The Easy Code interface always adds internally the following sentences:

.model flat, stdcall
option casemap:none

Include and library files (*.inc and *.lib) are always searched in the following folders:

- The project folder
- The Include and Lib subfolders (specified in Tools-->Settings menu)
- The Include subfolder of the EasyCode folder

So, all Include or Library files needed must be added through the corresponding menu options, and must be in any of the specified folders. Any other files needed must also be added to project and placed in the project folder (except image, extern *.res, and other resources related files, which must be in Res subfolder).

When building Static Libraries (lib projects) and/or Dynamic Link Libraries (dll projects), it is possible to add a definition file (*.def). If so, just one definition file can be added to a project and it also must be in the project directory.

The final name of the executable, dynamic link library, console application, static library, COFF object file, driver or service, is always the project name plus the corresponding extension (exe, dll, lib, obj or sys). That is, a project named Project1 will be Project1.exe, Project1.dll, Project1.lib, Project1.obj or Project1.sys, depending on the project type. If you are going to build a Classic NT driver (sys), please carefully read Building NT drivers.

When creating a new classic project, Easy Code automatically adds a module. You can add as many new or existing modules as you like, using the following menus:

Project-->Add Module
Project-->Add existing file

When adding existing modules, they should be made by Easy Code in order to work properly. Anyway, in many cases, assembler files (*.asm), not created by Easy Code, can be loaded successfully.

When designing dialog boxes in the Resource Editor, you can place different controls inside them. For a list of available controls see Control objects.

REMARKS: In classic projects, you should write all the necessary code (just some initial code is written by Easy Code) and you are responsible for any directives (except those mentioned above), preserving registers Ebx, Edi and Esi (as required by Windows), etc., in order to compile and link without errors.