Hi,
steh erneut seit tagen vor demselben problem. in google macht sich das thema sehr rar und zudem alles in englisch. Zu dem unten genannten Code habe ich natürlich die mex.h inkludiert. Dennoch bekomme ich für die rot angezeigten Matlab-Funktionen Linker-Fehler. Dasselbe Problem hatte ich zuvor auch mit der mmsystem.h allerdings hat mir hier folgende Zeile die Fehler verschwinden lassen:
Weiß vielleicht jemand wie ich die Matlab-Funktionen aus mex.h oder matrix.h für MFC valide machen kann?
Hier noch die Funktion welche die rotmarkierten Fehler auslöst:
steh erneut seit tagen vor demselben problem. in google macht sich das thema sehr rar und zudem alles in englisch. Zu dem unten genannten Code habe ich natürlich die mex.h inkludiert. Dennoch bekomme ich für die rot angezeigten Matlab-Funktionen Linker-Fehler. Dasselbe Problem hatte ich zuvor auch mit der mmsystem.h allerdings hat mir hier folgende Zeile die Fehler verschwinden lassen:
Code:
#pragma comment(lib, "winmm.lib")
Hier noch die Funktion welche die rotmarkierten Fehler auslöst:
Code:
bool CWiwoDlg::AllocBuffers(void)
{
int i, nDataBlockSize, dims[1];
// allocate WAVEHDR buffer blocks
nDataBlockSize = GlPar.nNperB*GlPar.nChannels*2; // in Bytes
for(i=0; i < MAX_BUFFERS; i++)
{
whi[i] = (WAVEHDR*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WAVEHDR));
if(whi[i])
{
whi[i]->lpData = (char*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nDataBlockSize);
whi[i]->dwBufferLength = nDataBlockSize;
}
who[i] = (WAVEHDR*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(WAVEHDR));
if(who[i])
{
who[i]->lpData = (char*) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nDataBlockSize);
who[i]->dwBufferLength = nDataBlockSize;
}
}
// input buffer in DWORDS, used to sign extend 16 bit integer data
// to 32 bit integers
pInpBuf = (int*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, nDataBlockSize*2); // in DWORDS = 4 bytes
// create MATLAB array to store INPUT and OUTPUT data (GlPar.nMBuffers acquired)
dims[0] = GlPar.nNperB * GlPar.nChannels *GlPar.nMBuffers ;
plhs[0] = mxCreateNumericArray(1,dims,mxINT32_CLASS, mxREAL);
pRecBuf = (int*)mxGetPr(plhs[0]); // for ease of use
if((pInpBuf == NULL) | (whi[0] == NULL) | (who[0] == NULL) | (pRecBuf == NULL))
return false;
else
return true;
}