| This article may not meet the notability guidelines for products and services. If you are familiar with the subject matter, please expand or rewrite the article to establish its notability. The best way to address this concern is to reference published, third-party sources about the subject. If notability cannot be established, the article is more likely to be considered for redirection, merge or ultimately deletion, per . This article has been tagged since November 2007. |
|
|
The creator of this article, or someone who has substantially contributed to it, may have a conflict of interest regarding its subject matter. |
eC (Ecere C) is an object-oriented language derived from and compatible with C designed and developed by Ecere Corporation. It aims at being fast, light and easy to write. It is supported by a cross-platform runtime library including its own GUI toolkit, 2D/3D graphics engine as well as networking support. The Ecere SDK is completely free and includes a full-featured Integrated Development Environment as well as a compiling tools for the eC language. Some of eC Features
- Full C compatibility (Only exception: few additional reserved keywords such as 'class')
- Object oriented class definitions supporting single inheritance
- Per instance virtual methods
- Import feature removing the need for header files
- Properties
- Automatic conversions
- Context sensitive enumerations
- Component object model enabling dynamic lookup of classes, methods, objects serialization and broking, runtime code class aggregation
Sample Code
Hello, World!! in eC
class HelloApp : Application
{
void Main()
{
printf("Hello, World!!\n");
}
}
Properties & Conversions in eC
class Pen
{
Color color;
public property Color color
{
get { return color; }
set { color = value; }
}
}
// Example Usage
Pen pen { red };
Pen pen { color = red };
pen.color = ~pen.color;
pen.color += 10;
pen.color.r = 255;
pen.color = 0xFF0000;
pen.color = { 255, 0, 0 };
pen.color = ColorHSV { 0, 100, 100 };
pen.color = ColorLab { 53, 79, 66 };
pen.color = ColorCMYK { 0, 100, 100, 0 };
Hello, World!! in a GUI
import "ecere"
class HelloForm : Window
{
text = “Hello, World!! Application";
hasClose = true;
hasMaximize = true;
hasMinimize = true;
size = { 640, 480 };
void OnRedraw(Surface surface)
{
surface.WriteTextf(10, 10, "Hello, World!!");
}
}
HelloForm helloForm {};


