|
Using VC++ .net, I am trying to compile a project developed in C on Linux.
In a header file below code is there:
typedef _Bool BOOL;
When compile the project, there is error message
"error C2061: syntax error : identifier 'BOOL'"
Project is a Win32 console project which includes a default c++ file and stdafx.h.
How to solve this error?
Thanks & Regards,
Suman
--
"Programming is an art that fights back!"
|
|
|
|
|
This error went after inclding "stdafx.h" in the header file.
Thanks & Regards,
Suman
--
"Programming is an art that fights back!"
|
|
|
|
|
rp_suman wrote: typedef _Bool BOOL;
remove this line, and try once more!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
Hi All,
I would like to ask regarding the possible overhead/performance issue for an application (DLL) to create an object (call NEW) and destroy the object (DELETE) every 1 second?
Thanks so much.
not so newbie
|
|
|
|
|
I dont think there will be any performance issue.
|
|
|
|
|
PSEUDOCODE
int *varArray[1000000];
StartNewTime = getSystemTimer();
for (i=0; i<1000000; i++)
varArray[i] = new int;
StartDelTime = getSystemTimer();
for (i=0; i<1000000; i++)
delete varArray[i];
endTime = getSystemTimer();
elapsedNewTime = StartDelTime - StartNewTime;
elapsedDelTime = endTime - StartDelTime;
timePerNew = (float) elapsedNewTime / 1000000.0;
timePerDel = (float) elapsedDelTime / 1000000.0;
Of course, if they were C++ objects that were calling constuctors & destructors, then the answer would be different, and you would need to have an array of 1000000 (or whatever other arbitrary number suits you) pointers to objects of the type to be investigated.
Just remember - if 1 event is too quick to time effectively, then just time a whole heap of them at once.
|
|
|
|
|
Anytime you employ the use of Windows' memory manager, there will be some overhead involved. It may be negligible, but there will be some.
Is it really part of your design to allocate and release memory every second?
"Love people and use things, not love things and use people." - Unknown
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
ginjikun wrote: I would like to ask regarding the possible overhead/performance issue for an application (DLL) to create an object (call NEW) and destroy the object (DELETE) every 1 second?
could it don't by allocating static memory, instead of using dynamic memory. yes there could be dynamic issue, as memory allocation itself is tedious task.
how big is data??, could you code like this :-
if( MEMORY_REQUIRED > STATIC_MEMORY_ALLOCATED)
allocate DYNAMIC_MEMORY
else
use STATIC_MEMORY
now you have choose STATIC_MEMORY_ALLOCATED limits according to you.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
Every 1 second is not very often relative to how many operations
can be done in one second by a modern PC. I can allocate/free hundreds of video
frame buffers a second using barely any CPU.
If your allocations are too slow (for reasons others have mentioned) then you can
implement some kind of pre-allocated memory scheme.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
I try to print a window, using this article:
http://support.microsoft.com/kb/186736
It works, but I want to user default printer with landscape. So I try to modify the GetPrinterDC(), like this:
HDC CLogACTsPrintHelper::GetPrinterDC(void)
{
CWaitCursor wait;
PRINTDLG pdlg;
memset( &pdlg, 0, sizeof(PRINTDLG));
pdlg.lStructSize = sizeof(PRINTDLG);
pdlg.Flags = PD_RETURNDEFAULT | PD_RETURNDC;
AfxGetApp()->GetPrinterDeviceDefaults(&pdlg);
DEVMODE* lpDevMode = (DEVMODE*)::GlobalLock(pdlg.hDevMode);
lpDevMode->dmOrientation = (short)DMORIENT_LANDSCAPE;
::ResetDC(pdlg.hDC,lpDevMode);
::GlobalUnlock(pdlg.hDevMode);
PrintDlg( &pdlg );
return pdlg.hDC;
}
But I don't know why it return NULL???
If I comment all source code in set landscape block, it works. Or if I do not use default printer and set landscape, it work
pdlg.Flags = PD_RETURNDC;
...
Can anyone explain me what's wrong here?
Thank you in advance,
|
|
|
|
|
|
Well, I don't know if you are using MFC, but I made it like that:
BOOL CMyFormView::OnPreparePrinting(CPrintInfo* pInfo)
{
delete pInfo->m_pPD ;
pInfo->m_pPD = new CDlgPrinting(FALSE, PD_ALLPAGES | PD_USEDEVMODECOPIES | PD_NOPAGENUMS
| PD_HIDEPRINTTOFILE | PD_NOSELECTION, this) ;
pInfo->m_pPD->m_pd.hInstance = AfxGetInstanceHandle();
pInfo->m_pPD->m_pd.lpPrintTemplateName = MAKEINTRESOURCE(IDD_PRINT_PRDLG);
pInfo->m_pPD->m_pd.Flags |= PD_ENABLEPRINTTEMPLATE;
pInfo->m_pPD->m_pd.nMinPage = 1;
.
.
if (pInfo->m_bPreview)
return DoPreparePrinting(pInfo);
int nAnswer = pInfo->m_pPD->DoModal ();
if (nAnswer == IDCANCEL)
return FALSE;
pInfo->m_pPD->m_pd.hDC = pInfo->m_pPD->CreatePrinterDC ();
return TRUE;
}
void CMyFormView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
if (pDC->IsPrinting ())
{ DEVMODE* devMode = pInfo->m_pPD->GetDevMode ();
devMode->dmOrientation = DMORIENT_LANDSCAPE;
devMode->dmFields |= DM_ORIENTATION;
pDC->ResetDC (devMode);
}
CFormView::OnPrepareDC(pDC, pInfo);
}
void CMyFormView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
pDC->SetMapMode (MM_LOMETRIC);
double dLeftOffset = 200 - (pDC->GetDeviceCaps (PHYSICALOFFSETX) * 254.0) / pDC->GetDeviceCaps (LOGPIXELSX);
double dTopOffset = 200 - (pDC->GetDeviceCaps (PHYSICALOFFSETY) * 254.0) / pDC->GetDeviceCaps (LOGPIXELSY);
double dRightMargin = 2770 - (pDC->GetDeviceCaps (PHYSICALOFFSETX) * 254.0) / pDC->GetDeviceCaps (LOGPIXELSX);
double dBottomMargin = 1950 - (pDC->GetDeviceCaps (PHYSICALOFFSETY) * 254.0) / pDC->GetDeviceCaps (LOGPIXELSY);
pInfo->m_rectDraw.left += (int) dLeftOffset;
pInfo->m_rectDraw.top += (int) dTopOffset;
pInfo->m_rectDraw.right = (int) dRightMargin;
pInfo->m_rectDraw.bottom = (int) dBottomMargin;
..........
.......
,....
I don't know if it is totally correct and I guess it can be optimized, but it works. I hope it helps you
Regards.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
Rating helpfull answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Thank you, Nelek.
I will try it now!
|
|
|
|
|
i am stuck like chuck..... i can change from low to normal and high but how do i get priority belownormal and abovenormal?
|
|
|
|
|
locoone wrote: i can change from low to normal and high
How are you doing that, chuck?
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
SetPriorityClass(hHandle, HIGH_PRIORITY_CLASS); //high
SetPriorityClass(hHandle, NORMAL_PRIORITY_CLASS); //normal
SetPriorityClass(hHandle, IDLE_PRIORITY_CLASS); //low
its the belownormal and abovenormal i cant figure out
|
|
|
|
|
ABOVE_NORMAL_PRIORITY_CLASS 0x00008000
BELOW_NORMAL_PRIORITY_CLASS 0x00004000
HIGH_PRIORITY_CLASS 0x00000080
IDLE_PRIORITY_CLASS 0x00000040
NORMAL_PRIORITY_CLASS 0x00000020
REALTIME_PRIORITY_CLASS 0x00000100
There're some values for priority like above, you can try it!
|
|
|
|
|
that worked thanks
|
|
|
|
|
Hello,
i am wondering if vc++ also understands jpeg resources or only bitmaps ? It would be very nice if i can use jpegs for design elements.
Or another question: how can i build something like this:
http://cdn.last.fm/depth/screenshots/de/software_win.jpg[^]
(the left bar with the small image and the menue and the light blue bar in the mid (look at "Saalschutz")
Thanks for help.
|
|
|
|
|
gabbana wrote: i am wondering if vc++ also understands jpeg resources
GDI's LoadImage() function and GDI+'s Bitmap::FromResource() method both
load embedded JPEG BITMAP resources no problem. GIF too.
On VS2008:
(optional) copy JPEG and/or GIF file to the project's "res" folder
Right-click the project's resource (.rc) file in VS resource view
Choose "Add Resource"
Click "Import..."
Find the JPEG and/or GIF files, select them, and click "Open"
Save the project and reopen the project's .rc file in the text editor
Find the images you've embedded and change the types from "GIF"/"JPG" to "BITMAP"
The line(s) should look something like:
IDB_JPEG1 BITMAP "res\\some.JPG"
IDB_GIF1 BITMAP "res\\some.GIF"
Now you can use the above mentioned methods to work with the embedded bitmaps,
just like a bmp.
An alternative method using IStream/IPicture:
Load JPEG and (transparant) GIF picture files from a resource in 3 lines code[^]
Loading JPEG and GIF pictures[^]
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
On the design of the window you can make use of Splitters. About the Saalschutz and the blue background I guess it is a kind of progress bar. You may find a lot of info here in the CP. Take a look into that concepts if they help you.
Regards.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
Rating helpfull answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
okay, thanks.
do you know a good tutorial for creating a complete own gui with win32 ? So i mean owner drawn windows with my own close buttons and so on ?
i tried searching "skins" on cp but i only find apis which are easy to use but complicated to understand in the technic.
|
|
|
|
|
I am not sure what you are asking for, but actually the VC has lot of functionality and there are a lot of owner draw controls in the CP, the thing is you have to limit the search to what you need API, MFC and so on.
If you want to create your own GUI, I recommend you to make different test projects, trying one different thing in each one, and when you get what you want in every of them, then put all together.
When you have more questions just ask, there will be many people glad to help you if the question wakes up their curiosity or the question is well formulated.
Sorry, but about the manual... there are so many factors involve that I can not give you a concrete answer
Regards.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
“The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson
Rating helpfull answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Hi
I'm trying out the new features of the new VS2008 MFC Feature Pack (TR1). Managed to make a really nice looking application using 4 or 5 different CDockablePane s. All my views are now in their own pane, and the docking works really well.
Trouble is, there's a redundant CView lingering about which I a) don't have any use for, and b) don't know how to get rid of.
I tried various ways of resizing the top-level CPaneContainer using the SetPaneSize sample provided with the feature pack, which I implemented in CMainFrame::OnSize. This does work but it kinda breaks the dockable pane functionality - i.e. you can dock panes to the almost-visible CView and the whole thing screws up.
Is there an easy way to get the benefits of CFrameWnd, and get rid of CView altogether? Whilst keeping the CDockablePane functionality.
----
Edit:
Or alternatively is there a way to prevent panes from being docked onto the CView?
----
Thanks
[d3m0n]
P.S. MSDN's Feature Pack documentation is abysmal . You get more sense from stepping into the code and having a look around to see what you can call.
Cheers
[d3m0n]
Email (replace "***" with "key")
modified on Monday, July 14, 2008 4:50 PM
|
|
|
|
|
I there
This is a bit strange... I had a project (VS 2005 Pro) with all the code written in the header (.h) files. This is an OO project, so I had the class definitions and method implementations on the same file. Then, I separated the files, definition in headers, implementation in code files. But now I get 7 unresolved external symbols and the project won't compile. The strange thing is that before the separation all was normal.
What do you guys think it can be?
Best regards
Fratelli
|
|
|
|