Is EEC for external library? If so, you need to add its .lib file under linker additional input files (see project properties -> linker).
If it's a source file in your project, then make sure to add all its .cpp files to your project.

Originally Posted by Adak

io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.

Originally Posted by Salem

You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

Add part in red.
Similarly for DoubleECPoints and ECGetPoints.
Do not include source files.

Also suggest:
Get rid of conio.h. It isn't used and it isn't standard.
Replace __int64 with long long.
Add declaration for ModInverse.
Work on getting rid of those globals.

So why did this error occur? Basically, you told the compiler that there was a member function InitEllipticCurve. But really there wasn't. It was global and not part of the class. So the linker couldn't find it, which means it couldn't create a functional program, hence the error.

Last edited by Elysia; 07-08-2011 at 05:00 PM.

Originally Posted by Adak

io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.

Originally Posted by Salem

You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

The compiler needs to know about functions defined in other source files (since the compiler does 1 source file at a time). That's exactly what a header file is for: and your header is fine.

The linker matches up references to definitions. In this case, you hadn't defined any of the functions declared in your header file, because as Elysia points out, the functions you defined aren't members of the ECC class without the ECC:: prefix.