Eclipse External Language Interface (C)

From: <gemichael_at_cytanet.com.cy>
Date: Thu 04 Jan 2001 08:10:37 PM GMT
Message-Id: <Version.32.20010104204236.00dd6ad0@mail.cytanet.com.cy>
Message-Id: <Version.32.20010104204236.00dd6ad0@mail.cytanet.com.cy>
Dear Mr Warwick,

Although I tried I haven't been able to make it work. I am using Visual C++ 5.0 as my compiler and Eclipse 4.2 and 5.0

I attach the Eclipse code as well as the C code.
During linking I have linked eclipse.lib as required.
During execution time, the working directory contains the file eclipse.dll as well as the dll produced by the C compiler. The .h files of eclipse are in .\eclipse\ directory in the working directory.

Note that in times, when I try to compile the Eclipse file I get the following Tcl script error:


Error: Conversion error while reading exdr format.

followed by:

Error: Unexpected return from ec_resume: yield 99.

The exact error message for Eclipse 5.0 is:

External function does not exist in external_(run_sat / 1, p_run_sat, eclipse)

*** compilation aborted
before line 2 in the file //E/Loizos Folder/University/Extra/E - RES/SAT/Driver/driver.pl
calling an undefined procedure end_of_file in module eclipse

I hope this information helps you to locate what I am doing wrong. I would appreciate your reply with any comments.
:- load('convert.dll').
:- external(run/1, 'p_run').

#include "eclipse\external.h"
#include <fstream.h>
#include <stdio.h>
#include <string.h>
#include <process.h>
#include <malloc.h>
#include <stdlib.h>

#define DllExport    __declspec( dllexport )


	DllExport int p_run(value val, type tag);



int main(void)
{
	return 1;
}


int p_run(value val, type tag)
{
	Check_Integer(tag); 
	Succeed;
}


/* Other functions... */
Received on Thu Jan 04 20:10:54 2001

This archive was generated by hypermail 2.1.8 : Wed 16 Nov 2005 06:08:02 PM GMT GMT