|
In your CreateBitmap call, shouldn't the nBitcount parameter be 8?
onwards and upwards...
|
|
|
|
|
Could be,
I will try tomorrow.
I've got an cam which makes about 15 pics per second and i want to display it. (so it is not possible to save it into a file first)
I think if tried the parameter 8 for bBitcount but i'm not sure.
Many thanks for now
I will ask again tomorrow in a new thread if it doesn't work
Heiko
|
|
|
|
|
Hi,
I recently upgraded from VS 6.0 to VS.net 2002 (both enterprise edition), and now I get a error I can't seem to get rid of while compiling.
I have a pretty large array in my MFC project ( defined CString strScore[18][12][50]), in a seperate file, which I include where needed. The array is there to provide return data in a table lookup, (if I'm making sense now
On VS 6, I had to set compiler option /Zm300 to get the compile to go through, but this doesn't work now. I have tried /Zm2000 without result. I'm running on 512 MB RAM, with plenty of hard-drive space for the swap file, and I'm basically now sure how I'm supposed to get this to work.
------------------------------
The great successful men of the world have used their imagination...they think ahead and create their mental picture in all its details, filling in here, adding a little there, altering this a bit and that a bit, but steadily building-steadily buildings. (Robert Collier)
|
|
|
|
|
At first I thought you were using more than 2GB but 18 * 12* 50 * 256 is only about 2 MB so I can't see what your problem is... What does the /Zm300 do?
John
|
|
|
|
|
According to VS documentation, the default number here is 100 in the formula /Zmnumber, where number is, to quote MS: "A scaling factor that determines the compiler's memory allocation limit".
Having looked a little closer at the documentation, the greater the number is, the more memory is needed during comilation... I think my problem might be here, but not sure, and I don't know why I still have to increase the number dramatically after upgrading.
If anyone can shead som light on my problem, I am happy to hear from you!
------------------------------
The great successful men of the world have used their imagination...they think ahead and create their mental picture in all its details, filling in here, adding a little there, altering this a bit and that a bit, but steadily building-steadily buildings. (Robert Collier)
|
|
|
|
|
So you are saying that this error occurs during the compile? I thought we were talking about an exception because heap space is where CString is stored dynamically in memory. This is not allocated statically so there should be no compile error for that... I don't see why creating 18 * 12 * 50 CStrings will be a problem.
John
|
|
|
|
|
|
c1xx : fatal error C1060: compiler is out of heap space
This error comes up four times, with four diffrent files. As far as I can see, this has something to do with #includes.
------------------------------
The great successful men of the world have used their imagination...they think ahead and create their mental picture in all its details, filling in here, adding a little there, altering this a bit and that a bit, but steadily building-steadily buildings. (Robert Collier)
|
|
|
|
|
Hm... did you actually set a high swap file size?
according to the docs, a *high* /Zm makes sense
Does it get better with moving headers to/from stdafx.h?
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen
|
|
|
|
|
Well, win xp pro is telling me that total size of all paging files is 3068 MB, so I'm assuming that it's not a problem. Windows manages the size of those files and I got *plenty* of disk space, so I think I should be covered there...;P
I tried to move the file tables.h (with the array) to stdafx.h, but seemingly to help. stdafx.cpp compiled, after a long while, without reporting any problems, but all the other source files reported the same error.
|
|
|
|
|
You do declare the array as "extern CString yadda[][][], do you?
Can you, just for a test, reduce the CString array to [1][1][1], or even better, declare as
typedef CString[b][c] CStringMatrix;
extern CStringMatrix * array;
and instantiate it as
CStringMatrix * array = new CStringMatrix[a];
this should change nothing syntactically when using accessing the array, but moves it to the heap.
Just to see if the array is really the culprit
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen
|
|
|
|
|
Actually, being the newbie that I am, I didn't use extern, but it doesn't seem to make a diffrence in itself.
I tried to experiment with which number I could use with /Zm. I get "out of heap space" at about 128, while setting the value to default, 127, gives "fatal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit".
I tried to use extern CString yadda[1][1][1], which worked out quite OK, actually, as long as I didn't exceed 127...
Now, It seems the real question is: isn't a little below 3GB large enough swap file?
|
|
|
|
|
OldViking wrote:
I didn't use extern, but it doesn't seem to make a diffrence in itself
But it definitely does (maybe not for your problem, but in terms of C++)
if you use
int x;
in a header file, every .cpp that includes it gets it's own instance of x. To get a "truly global" x, you need to declare
extern int x;
in the header file, and
int x = 0;
(or any other initializer value) in one .cpp file.
On the main topic, I'm out of ideas. might be this *is* a problem with the compiler. The only option that I see is moving the array to the heap, as described earlier. Sorry.
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen
|
|
|
|
|
Hmmm... seems like I have found a solution. The compiler gives more room for change in /Zm when I clean the temp files before rebuilding after changing the number. In other words, I changed the /Zm number to 900, and chose clean on the build menu before building. That worked, but gives me two questions I am curious about. Why do I need to clean first to get a effect? Why does the number need to be som much bigger on VStudio.net vs. VS 6.0?
Can you somehow answer this?
|
|
|
|
|
Have you tried to dynamically allocate the array on the heap using the new operator? It may be a better solution. You may even want to wrap it in a class to manage computing the offsets into a linear array from your x, y, z coordinates...
Just allocate the array as linear:
CString *m_pScores;
m_pScores = new CString(18*12*50);
then when accessing them, compute the offset
CString GetScore(int iX, int iY, int iZ)
{
return *(m_pScores[iX * iY * iZ]);
}
void SetScore(int iX, int iY, int iZ, CString cScore)
{
*(m_pScores[iX * iY * iZ]) = cScore;
}
onwards and upwards...
|
|
|
|
|
First off, maybe a dumb question: If you simply multiply x, y, and z coordinates, how can you be sure that you don't have multiple combinations which gives the same result. Won't this be a problem
Second, it's a reason for my setup. I have 18 written pages, with a table on each which I had to get into a computer. Done. The tables had 12 coloumns each, and each coloumn had 50 diffrent values. I pretty much need a solution that easy to insert those data. It might just be me, but 10800 * SetScore don't seem to me to be the best way to go...?
I was looking for a better way to create those tables, so I appreciate that, but I need to do it without creating source-code-hell
------------------------------
The great successful men of the world have used their imagination...they think ahead and create their mental picture in all its details, filling in here, adding a little there, altering this a bit and that a bit, but steadily building-steadily buildings. (Robert Collier)
|
|
|
|
|
When you use the ImageAttributes class to set the colour transformation matrix to draw an image, the only the fractional part of the resulting colour values are retained, so that the values don't go above 1.0.
Is there any way of instructing GDI+ to saturate the colour values intead (ie. if they're above 1.0, then set them to 1.0)? I can't find anything in the docs, but perhaps someone has already had to deal with this before...
Thanks
Ryan
Being little and getting pushed around by big guys all my life I guess I compensate by pushing electrons and holes around. What a bully I am, but I do enjoy making subatomic particles hop at my bidding - Roger Wright (2nd April 2003, The Lounge)
Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late - John Nichol "Point Of Impact"
|
|
|
|
|
I have a strange compiler error on my program. My compiler is Visual C++ .Net. The error is:
"error C2872: 'IServiceProvider' : ambiguous symbol"
on the file afxole.h of the MFC.
I don't understand what is the problem, because I don't use that class ...
Can you help me ?
Thank you very much for any answer.
Andrea
|
|
|
|
|
Are you programming a COM component? If so, have you initialized COM? in case of ambiguous symbol ... search msdn for C2872 and you'll get the following.
'symbol' : ambiguous symbol<br />
<br />
The compiler cannot determine which symbol you are referring to.<br />
<br />
The following sample generates C2872:<br />
<br />
namespace A<br />
{<br />
int i;<br />
}<br />
<br />
using namespace A;<br />
int i;<br />
void z()<br />
{<br />
::i++;
A::i++;
i++;
}<br />
-Tareq
|
|
|
|
|
Hi all of u
Can any one of u tell me how to lock the CD-ROM ????
Any c++ code or any idea???????
pl. help me.
|
|
|
|
|
I would use MCI. Send these 3 MCI strings:
open CDaudio alias cd sharable wait
set cd door locked wait
close cd wait This should lock the standard CD-ROM drive.
-Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
|
|
|
|
|
|
|
thanks Ted Ferenc
Pl. email the source it to me
|
|
|
|
|
plz send me the code my id :-- ddrano7@gmail.com
thanks
|
|
|
|
|