|
Hi,
can one help me to write the below Matlab code in VC++?
Dura=1000/4096;
Trl =0;
i=1;
for location = 1:length(y)-1
if ((y(location)-sl<0)&(y(location+1)-sl>0))|((y(location)-sl>0)&(y(location+1)-sl<0))
perc = (sl(location) - y(location))/(y(location +1) - y(location)) ;
time = t(location) + (t(location+1)- t(location))*perc;
Trl(i)=time;
i=i+1;
elseif y(location)-sl==0;
Trl(i)=t(location);
i=i+1;
end;
end;
for i=1:length(Trl)-1
realTrl(i)=Trl(i+1)-Trl(i);
end
Trl=realTrl;
histogram_ram(1:4096) = 0;
for i=1:length(Trl)
i_index=round(Trl(i)/Dura)+1;
histogram_ram(i_index)=histogram_ram(i_index)+1;
end;
Thx
F.K
|
|
|
|
|
Let me tell you that your matlab code is not really optimized...
For the following code, you need to put the size of the Trl table in length_y (which has to be declatred as an int).
int Dura = 1000/4096;
int *Trl;
int tmp;
int histogram_ram[4096];
int location;
int perc;
int time;
Trl=(int *)malloc(length_y*sizeof(int));
realTrl=(int *)malloc(length_y*sizeof(int));
for (location=1;location<length_y;location++)
{
if ((y[location]-sl<0)&&(y[location+1]-sl>0))||((y[location]-sl>0)&&(y[location+1]-sl<0))
{
perc = (sl[location] - y[location])/(y[location +1] - y[location]) ;
time = t[location] + (t[location+1]- t[location])*perc;
Trl[location]=time;
}
else if ((y[location]-sl)==0)
{
Trl[location]=t[location];
}
}
for(location=1;location<length_y-1;location++)
{
Trl[location]=Trl[location+1]-Trl[location];
}
for (location=0;location<4096;location++)
{
histogram_ram[location]=0;
}
for (location=1;location<length_y;lcoation++)
{
tmp=(int)(Trl[location]/Dura+1);
hitogram_ram[tmp]++;
}
This has not been tested.
~RaGE();
|
|
|
|
|
I had inserted a Activex control into my project, and put
it on one of my dialog(id: IDD_DIALOG1), then I deleted it
(the class declearation file and implement file and the control on the dialog).The problem comes out:
error C2065: 'IDD_DIALOG1' : undeclared identifier
but please note: I checked my resources and verified that
the dialog(IDD_DIALOG1) is right there.
what have I deleted by mistake?
|
|
|
|
|
ilavl wrote:
I checked my resources and verified that
the dialog(IDD_DIALOG1) is right there.
I had a similar problem like this one long before. I deleted all files in the output dir and then did a re-build. Try that you too!
Rickard Andersson8
Here is my card, contact me later!
UIN: 50302279
E-Mail: nikado@pc.nu
Interests: C++, ADO, SQL, Winsock, 0s and 1s
|
|
|
|
|
Hi
I'm running now vc5 on a virtual pc (using vmware).
But the mini-bar where it is possible to compile, link & execute the program are all disabled. The wizardbar and most menu-items disabled too.
Anyone have any idea how this is possible?
Best regards
Jens
|
|
|
|
|
I am trying to Drag&Drop my activeX Control from an application to MS-WORD.
I had Create A Global Memory To Hold The Data and Lock The Memory BUT I am having problem on Cashing the data into the memory.
I dont know what should I put in the frist parameter of the CacheGlobalData() function. I have tried putting "CF_TEXT" as the first parameter but it seems didnt work, the reason might be the data that I am trying to drag&drop is not text. Can Anyone Help me On This Please !!
opOleDataSource->CacheGlobalData(???? , hGlobal);
Looking forward to any answers !!
|
|
|
|
|
Hello everybody !
I have something really strange in an application. I have a SDI application and in the OnNewDocument() function I call a function that creates some data, initialize things, ... I check also for eventual errors (for ex in the command line arguments,...). If an error occured, I call a function that displays a string and clean the program. The strange thing is that, at the instruction when I display the messageBox, a unhandled exception is thrown and with the debugger it jumps inside a completely different class !!
The function is here:
ZANResult CDebitVolDoc::ZANErrorExit(ZANResult ErrorRef)
{
char* szErrorMessage;
switch (ErrorRef)
{
case ZANERR_NOBDE:
szErrorMessage="Cannot load idapi32.dll";
break;
case ZANERR_WRONGCOMMANDLINEARG:
szErrorMessage="Wrong Commandline-Argument!";
break;
case ZANERR_CONFIG:
szErrorMessage="Wrong Configuration File";
break;
case ZANERR_NOTEXTFILE:
szErrorMessage="No valid Text-File";
break;
case ZANERR_NOVALUEFILE:
szErrorMessage="No valid ValueRef-File";
break;
case ZANERR_NOAKTE:
szErrorMessage="Patient-file not found";
break;
case ZANERR_NOMEASURE:
szErrorMessage="Nothing to show";
break;
case ZANERR_WRONGQUERY:
szErrorMessage="Test(s) missing";
break;
case ZANERR_NOSEITE:
szErrorMessage="Date not found";
break;
default:
szErrorMessage="Unknown Error";
break;
}
MessageBox(NULL,szErrorMessage,"Visualisation DV",MB_OK);
ZANGlobalFree();
return ErrorRef;
}
I set a break point at the MessageBox instruction (wich doesn't receive any argument from a class), and then I make a step into (F11). It then throw the exception and set the cursor (yellow arrow) in a completely different class as if I tried to call o function from a class that hasn't been initialized (SomeClass->SomeFunc() with the SomeClass pointer set to NULL) !!!!
Does somebody understand what's happening here ???
Thanks
|
|
|
|
|
Try
char szErrorMessage[255];
instead of
char* szErrorMessage;
Also use
strcpy(szErrorMessage,"Message");
instead of
szErrorMessage="Message";
~RaGE();
|
|
|
|
|
I already tried it before but it doesn't change anything !!
I'm getting crazy on this bug !!
I really don't understand what's happening here !!
|
|
|
|
|
If you change the MessageBox() to a TRACE() do you still get the exception? Maybe the stack is screwed before ZANErrorExit() is called.
Are you sure the document hasn't already been destroyed? If you wrap the code in ZANErrorExit() in a try .. catch what happens. If you open the Assembly window and step through the assembler code when MessageBox() is reached what happens.
Some things to try and think about.
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
Thanks for your propositions !! I tried everything and.... I do not understand better the problem !!
If you change the MessageBox() to a TRACE() do you still get the exception? Maybe the stack is screwed before ZANErrorExit() is called.
I don't have any exception thrown with the TRACE ! The document hasn't been destroyed because this function is called from another function wich is called by OnNewDocument! If an error occur, this function returns an error code to OnNewDocument() that will return FALSE so the document will be deleted after ! Something I forgot to tell you: this code is used also on other projects and sometimes it works fine and sometimes not (depending of the project) !
If you wrap the code in ZANErrorExit() in a try .. catch what happens <\i>
The exception is caugth and that's it !
If you open the Assembly window and step through the assembler code when MessageBox() is reached what happens.
A lot (really a lot !) of assembly code is executed and then suddenly the exception is thrown (don't ask me at wich instruction, assembler is nt easy to read )
So, any idea to this strange bug ???
|
|
|
|
|
My guess is the problem has nothing to do with ZANErrorExit(). Can you temporarilly remove the code the creates data etc. and causes the error to occur. Instead fake a call to ZANErrorExit() and see what happens. It may be that whatever is causing the error that ZANErrorExit() is reporting on, is corrupting the stack, heap, or memory. This is where I'd be looking.
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
You know what, the more you suggest intersting things, the more I become crazy !! Here it's really mad:
So, in the first line of the OnNewDocument() function, I make a call to ZANErrorExit.
BOOL CDebitVolDoc::OnNewDocument()
{
ZANErrorExit(ZANERR_WRONGCOMMANDLINEARG);
if (!CDocument::OnNewDocument())
return FALSE;
And guess what ?? I still have the problem . So, from where is it comming ?? Do you think I've discovered some extra-terrestrial intelligence (Sorry, I go crazy )??
|
|
|
|
|
If you are running W98/ME/SE then I would suggest trying a reboot after getting an exception, or at least restart VC++. Does it happen both in Debug and Release Builds?
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
I'm running under Win2K. And I have also the bug with the release build !
|
|
|
|
|
cedric moonen wrote:
I'm running under Win2K.
I'd restart W2K just in case. Does it also happen in a Debug build?
If you change: ZANErrorExit(ZANERR_WRONGCOMMANDLINEARG); to just a call to MessageBox( ... ) is there still a problem?
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
Hmmm!! Something better:
I call
MessageBox(NULL,"Test","Test",MB_OK);
in the first line of the OnNewDocument() function and I have the same problem !
So it has nothing to do with the function itself, but rather with the message box !!
|
|
|
|
|
Calling MessageBox() will cause a change of window focus. That may be relevant. I can't recall what state things are in when OnNewDocument() is called. Has the Views window been created yet.
23:11 time for me to go to bed. Good luck in your hunt and let us know what happens.
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
No it's not because of the the view that hasn't been created because calling MessageBox in OnNewDocument in some other project I have causes no problems: it jusst show the message box.
So, good night then, I'll keep you informed if I'll find the solution
|
|
|
|
|
cedric moonen wrote:
with the debugger it jumps inside a completely different
Which class ? One you own or a MFC one ?
~RaGE();
|
|
|
|
|
One of mine wich is used to store text strings for the current language (loaded from a text file). (Is it a coïncidence ???)
But the pointer on this class is initialized after (first I check the command-line and then I load this file it it exist). But here, I never make a call to this class !!!
|
|
|
|
|
That sounds to me like a memory problem. Check your initialisations, maybe use #define DEBUG_NEW to trace memory leaks.
~RaGE();
|
|
|
|
|
Hmmm... don't think so: take a look at the message I posted with Frank: if I call the function at the first line of OnNewDocument, I still have the bug!
|
|
|
|
|
Maybe give us a copy of the CallStack where the bug occurs.
|
|
|
|
|
here is the copy of the callstack just after the bug (I cannot giv it just before because it runs through assembler code and I can't detect where is the failure! :
TEXTDEF::nr(unsigned int 57345, char * 0x0068e16c `string') line 64 + 6 bytes
CMainFrame::GetMessageString(unsigned int 57345, CString & {""}) line 186 + 20 bytes
CFrameWnd::OnSetMessageString(unsigned int 57345, long 0) line 1513
CWnd::OnWndMsg(unsigned int 866, unsigned int 57345, long 0, long * 0x0012f3dc) line 1815 + 17 bytes
CWnd::WindowProc(unsigned int 866, unsigned int 57345, long 0) line 1585 + 30 bytes
AfxCallWndProc(CWnd * 0x013d1900 {CMainFrame hWnd=???}, HWND__ * 0x00030360, unsigned int 866, unsigned int 57345, long 0) line 215 + 26 bytes
AfxWndProc(HWND__ * 0x00030360, unsigned int 866, unsigned int 57345, long 0) line 368
USER32! 77e01d0a()
USER32! 77e01bc8()
USER32! 77e01cef()
USER32! 77e16d62()
USER32! 77e2ca3b()
USER32! 77e2c475()
USER32! 77e2d47e()
USER32! 77e25c19()
USER32! 77e25ba6()
CDebitVolDoc::OnNewDocument() line 144 + 22 bytes
CSingleDocTemplate::OpenDocumentFile(const char * 0x00000000, int 1) line 151 + 11 bytes
CDocManager::OnFileNew() line 829
CWinApp::OnFileNew() line 29
_AfxDispatchCmdMsg(CCmdTarget * 0x006cd008 class CDebitVolApp theApp, unsigned int 57600, int 0, void (void)* 0x0052b330 CWinApp::OnFileNew(void), void * 0x00000000, unsigned int 12, AFX_CMDHANDLERINFO * 0x00000000) line 88
CCmdTarget::OnCmdMsg(unsigned int 57600, int 0, void * 0x00000000, AFX_CMDHANDLERINFO * 0x00000000) line 302 + 39 bytes
CWinApp::ProcessShellCommand(CCommandLineInfo & {CCommandLineInfo}) line 31 + 30 bytes
CDebitVolApp::InitInstance() line 104 + 12 bytes
AfxWinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00133094, int 1) line 39 + 11 bytes
WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00133094, int 1) line 30
WinMainCRTStartup() line 198 + 54 bytes
KERNEL32! 77e8ca90()
The first line is the instruction that causes the bug: I (hmm, not me but the compiler )calls a method from a class that hasn't been instancide (nr() funtion) !
|
|
|
|