|
It gets worse, i get more errors in addition to the previous one
F.K
|
|
|
|
|
My fault, sorry.
Ok, lets start. You do not show much code, but I try anyway:
What is pTrlValues ? A member variable? What type? Is it unsigned char ?
Where do you assign memory to realTrlVaues ? You initialiy set it to NULL , but where do you get the memory to place the differences of TrlValues you compute?
Why do you assign the result of your complicated computation with double s to time , of type unsigned char , which can only hold 0..255?
Your if s look wiered: Make them look like this:
if ( expression )
{
...stuff..
}
else
{
..stuff..
}
That means, have the expression you want to test between ( and ) and the thing you want to run in { and }.
My opinions may have changed, but not the fact that I am right.
|
|
|
|
|
Hi !
To jhwurmbach:
Just to explain ... flora_k is a begginer trying to convert Matlab code to VC++ with only few knowledge of the language. So do not ask about where things happen (initialisations, memory) but show him/her directly how to do it.
I posted some code in a previous thread. Might check it to get the whole idea of the program.
To flora_k:
Do not take my remark badly , it is only to help you. If you want, you can post me your matlab code zipped with a small description of what you want it to do, and I'll be glad to translate it (if it is not too long).
~RaGE();
|
|
|
|
|
hi,
the address forums@codeproject.com is not working.
The message keeps coming back.
Can i get another one?
F.K
|
|
|
|
|
Two ways :
Instead of clicking reply to reply to the post, click mail.
~RaGE();
Last modified: 50155hrs 6mins after originally posted --
|
|
|
|
|
Pointers have to be declared :
unsigned char *pTrlValues = (unsigned char *)malloc(amount*sizeof(unsigned char));
flora_k wrote:
pTrlValues[i] = (unsigned char) pData[location]; //error C2109:
Be careful, location is used without being assigned a value !
What is pData ?
flora_k wrote:
if
((pData[location] - sl < 0) && (pData[location + 1] - sl ) > 0)||
((pData[location] - sl > 0) && (pData[location +1 ] - sl < 0)) //error C2143
perc = (sl - pData[location])/(pData[location + 1]) - pData[location];
time = location * 0.00000001923 + (((location * 0.00000001923) + 1) - (location * 0.00000001923))* perc;
//warning C4244
if
pData[location] - sl =0;//error C2061
pTrlValues [i] = location * 0.00000001923;//error C2109, warning 4244,error C2106:
In C/C++, the if statements are used that way :
if (condition)
{
do some stuff.
}
In your case :
if (
((pData[location] - sl < 0) && (pData[location + 1] - sl ) > 0)||
((pData[location] - sl > 0) && (pData[location +1 ] - sl < 0)) )
{
perc = (sl - pData[location])/(pData[location + 1]) - pData[location];
time = location * 0.00000001923 + (((location * 0.00000001923) + 1) - (location * 0.00000001923))* perc;
}
~RaGE();
|
|
|
|
|
can someone tell me how can i get a DataSet and put it into a RecordSet?
if u know this please help me.
thanks
Nuno Henrique Mendes
|
|
|
|
|
Are you talking about .NET Datasets?
If so, you may never want to do that. However use something like this:
DataView dv = MyDataSet.Tables ["MyTableName"].DefaultView;
Now you can use dv just like a normal recordset.
Best regards,
Alexandru Savescu
P.S. Interested in art? Visit this!
|
|
|
|
|
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 !!
|
|
|
|