Hi,

I don't know whether this is API section but here goes.

I'm trying to build a wrapper function DLL file to connect the programs Matlab with Metatrader by following the instructions on the article http://articles.mql4.com/833.

I have VC++ 2008 Express and this is the code I have:

Code:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include <memory.h>
#include <conio.h>
#include "engine.h"

extern "C" __declspec(dllexport) int __stdcall Adapt_Forecast(double *nlnVector, int nSizeIn);
extern "C" __desclspec(dllexport) void __stdcall DestroyBuffFilter();
extern "C" __desclspec(dllexport) void __stdcall MakeBuffFilter();
void StartVirtualEngine();
void StopVirtualEngine();

#define BUFSIZE 256
Engine *pEng;
mxArray *mxVectorIn;
mxArray *mxVectorOut;
int nSizeVectorIn;

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
	switch(reason)
	{
	case DLL_PROCESS_ATTACH:
		StartVirtualEngine();
		break;

	case DLL_PROCESS_DETACH:
		StopVirtualEngine();
		break;
	}
	return TRUE;
}

void StartVirtualEngine()
{
	if ((pEng = engOpen(NULL)) == NULL)
	{
		MessageBoxA(NULL, (LPSTR)"Can't start Matlab Engine!",
			(LPSTR) "Matlab Engine: ERROR!", MB_OK|MB_ICONSTOP);
		return;
	};
	nSizeVectorIn = 0;
	mxVectorIn = NULL;
	mxVectorOut = NULL;

	return;
}

void StopVirtualEngine()
{
	engClose(pEng);
	DestroyBuffFilter();

	return;
}

void __stdcall MakeBuffFilter(int nSize)
{
	if((mxVectorIn !=NULL)||(mxVectorOut != NULL))
	{
		DestroyBuffFilter();
	};

	mxVectorIn = mxCreateDoubleMatrix(1, nSize, mxREAL);
	mxVectorOut = mxCreateDoubleMatrix(1, 1, mxREAL);
	return;
}

int __stdcall Adapt_Forecast(double *nInVector, int nSizeIn)
{
	MakeBuffFilter(nSizeIn);
	if(pEng==NULL) return false;

	if((nInVector==NULL)||(nSizeIn < 1)) return NULL;
	nSizeVectorIn = nSizeIn;

	memcpy((char *)mxGetPr(mxVectorIn), (char *)nInVector, (nSizeVectorIn)*8);
	engPutVariable(pEng, "X", mxVectorIn);

	engEvalString(pEng, "Y = Adapt_Forecast(X)");
	mxVectorOut = engGetVariable(pEng, "Y");

	memcpy((char *)nInVector, (char *)mxGetPr(mxVectorOut), 8);

	return mxVectorOut;
}
This is the error message I get:
Error 1 error C2065: 'dllexport' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 11 Adapt_Forecast
Error 2 error C2448: '__desclspec' : function-style initializer appears to be a function definition c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 11 Adapt_Forecast
Error 3 error C2065: 'dllexport' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 12 Adapt_Forecast
Error 4 error C2448: '__desclspec' : function-style initializer appears to be a function definition c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 12 Adapt_Forecast
Error 5 error C2143: syntax error : missing ';' before '*' c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 17 Adapt_Forecast
Error 6 error C2143: syntax error : missing ';' before '*' c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 18 Adapt_Forecast
Error 7 error C2143: syntax error : missing ';' before '*' c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 19 Adapt_Forecast
Error 8 error C3861: 'StartVirtualEngine': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 27 Adapt_Forecast
Error 9 error C3861: 'StopVirtualEngine': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 31 Adapt_Forecast
Error 10 error C2065: 'pEng' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 39 Adapt_Forecast
Error 11 error C3861: 'engOpen': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 39 Adapt_Forecast
Error 12 error C2065: 'nSizeVectorIn' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 45 Adapt_Forecast
Error 13 error C2065: 'mxVectorIn' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 46 Adapt_Forecast
Error 14 error C2065: 'mxVectorOut' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 47 Adapt_Forecast
Error 15 error C2065: 'pEng' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 54 Adapt_Forecast
Error 16 error C3861: 'engClose': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 54 Adapt_Forecast
Error 17 error C3861: 'DestroyBuffFilter': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 55 Adapt_Forecast
Error 18 error C2065: 'mxVectorIn' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 62 Adapt_Forecast
Error 19 error C2065: 'mxVectorOut' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 62 Adapt_Forecast
Error 20 error C3861: 'DestroyBuffFilter': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 64 Adapt_Forecast
Error 21 error C2065: 'mxVectorIn' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 67 Adapt_Forecast
Error 22 error C2065: 'mxREAL' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 67 Adapt_Forecast
Error 23 error C3861: 'mxCreateDoubleMatrix': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 67 Adapt_Forecast
Error 24 error C2065: 'mxVectorOut' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 68 Adapt_Forecast
Error 25 error C2065: 'mxREAL' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 68 Adapt_Forecast
Error 26 error C3861: 'mxCreateDoubleMatrix': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 68 Adapt_Forecast
Error 27 error C2065: 'pEng' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 75 Adapt_Forecast
Error 28 error C2065: 'nSizeVectorIn' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 78 Adapt_Forecast
Error 29 error C2065: 'mxVectorIn' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 80 Adapt_Forecast
Error 30 error C2065: 'nSizeVectorIn' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 80 Adapt_Forecast
Error 31 error C3861: 'mxGetPr': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 80 Adapt_Forecast
Error 32 error C2065: 'pEng' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 81 Adapt_Forecast
Error 33 error C2065: 'mxVectorIn' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 81 Adapt_Forecast
Error 34 error C3861: 'engPutVariable': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 81 Adapt_Forecast
Error 35 error C2065: 'pEng' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 83 Adapt_Forecast
Error 36 error C3861: 'engEvalString': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 83 Adapt_Forecast
Error 37 error C2065: 'mxVectorOut' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 84 Adapt_Forecast
Error 38 error C2065: 'pEng' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 84 Adapt_Forecast
Error 39 error C3861: 'engGetVariable': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 84 Adapt_Forecast
Error 40 error C2065: 'mxVectorOut' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 86 Adapt_Forecast
Error 41 error C3861: 'mxGetPr': identifier not found c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 86 Adapt_Forecast
Error 42 error C2065: 'mxVectorOut' : undeclared identifier c:\documents and settings\administrator\desktop\adapt_forecast\adapt_forecast.cpp 88 Adapt_Forecast

Am in urgent need of repairs. Please help me fix whatever is wrong.

Thank you