|
Almostr always you will want to try if you can delete it, and if it fails evaluate the error code so you can make suggestions to the user.
You can do basic checks (e.g. is the file read-only) However, you cannot test for all reasons why a delete may fail.
Some of us walk the memory lane, others plummet into a rabbit hole
Tree<t> in C# || Fold With Us! || sighist
|
|
|
|
|
i have a sdi application that draws a bitmap based upon data that is loaded from a file.user choses from the menu what kind of bitmap he wants to see
my problem is that everytime i minimize the window the bitmap disappears.or if i choose to zoomout, it doesnot redraw the actual bitmap rather it draws a smaller version with the larger version of the bitmap still visible.
please help.
|
|
|
|
|
It sounds like you are drawing outside the WM_PAINT handler.
In Windows, you should do all painting in the WM_PAINT handler. Windows calls this handler when necessary (e.g. after minimizing/restoring the window). If your data has changed (selected bitmap, zoom level) call Invalidate
See also
Win32 Paint for beginners[^]
Win32 Paint for Intermediates[^]
Some of us walk the memory lane, others plummet into a rabbit hole
Tree<t> in C# || Fold With Us! || sighist
|
|
|
|
|
i have read the tutorials but i still have difficulty in understanding the fact that should i write the code in the OnDraw() function (in which case i wont know which of the options user may select) or if i write the message handler say OnPaint(), how would i know which options the user has selected and what needs to be repainted. i have tried to using InvalidateRect() but i cant seem to get it to work. everytime the window is minimized the bitmap disappears.
if i display anything using the OnPaint() that i use to handle the WM_PAINT msg then that area stays on the dc mixing onto other drawings.
|
|
|
|
|
OnDraw vs. OnPaint:
You normally use OnPaint. OnDraw is only for implementing activeX controls.
In WM_PAINT, you need to erase the background. There are multiple ways to do it (window class style, WM_ERASEBKGND handler, or simply erasing it in OnPaint)
Your next question is probably "it works but now it flickers" See the CMemDC class here on CodeProject
BTW. there is an old article of mine for displaying a bitmap: http://www.codeproject.com/miscctrl/wndimg.asp[^]
Maybe this helps.
Some of us walk the memory lane, others plummet into a rabbit hole
Tree<t> in C# || Fold With Us! || sighist
|
|
|
|
|
Hi, I was wondering what is the difference of "Multithreaded" and "Multithreaded DLL" options on the Code-Generation tab of the VC++.
I used to compile my application (composed out of several dll files) with "Multithreaded" (default option when migrated my app from VS2003 to VS2005) and it crashed randomly (some times it could even run smoothly for some reasonably long time). However when I switched the option to "Multithreaded DLL" the random crashes didn't occur any more.
Thank you.
|
|
|
|
|
This affects how the C runtime library (which contains all the "standard" functions) is linked.
"Multithreaded DLL" links the DLL version: you need to redistribute vcrt.dll etc. "Multithreaded" links the libraries statically: you have less dependencies, but your binary gets bigger.
For MFC applications, Runtime linkage must match MFC linkage.
Themis wrote: it crashed randomly (some times it could even run smoothly for some reasonably long time). However when I switched the option to "Multithreaded DLL" the random crashes didn't occur any more.
It is hard to say whether this is caused by selecting the wrong runtime (likely), or just a bug in your code that goes unnoticed when linking dynamically and may surface anytime (also likely)
Some of us walk the memory lane, others plummet into a rabbit hole
Tree<t> in C# || Fold With Us! || sighist
|
|
|
|
|
It could be that the original poster has used CreateThread rather than _beginthreadex . Using CreateThread does not initialise the C run-time's internal data structures for the thread, and is unsafe in C code unless you really know what you're doing.
Using the C run-time DLL allows you to get away with calling CreateThread because it does the necessary initialisation in the DLL's DllMain routine, on receiving the DLL_THREAD_ATTACH notification.
Stability. What an interesting concept. -- Chris Maunder
|
|
|
|
|
I keep hearing that c++ is less efficient than c. I want to know how well does microsoft visual c++.net make fast code with all speed optimizations turned on compared to a c program.
pplshero54 gives you his utmost most thanks
|
|
|
|
|
pplshero54 wrote: I keep hearing that c++ is less efficient than c.
the discussion is like "what is the best language ever"... all depends on what you want to do !
and depends also is performance has a critical impact on your work or not.
As C++ has some things to manage upon C, then yes, it could sometimes take some more CPU ticks...
but unless you're doing an OS kernel, i think it is not that important...
TOXCCT >>> GEII power [toxcct][VisualCalc 2.24][3.0 soon...]
|
|
|
|
|
pplshero54 wrote: I keep hearing that c++ is less efficient than c.
From whom? See here for the start of several related questions.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
|
|
|
|
|
This was somewhat true in the early days of C++, when it was basically implemented as a preprocessor that turned C++ code into (sometimes not very good) C code and fed it to a C compiler/linker.
These days, C++ compilers do C++ natively, and have extensive optimization algorithms designed to squeeze the very best out of the code, some optimizations being specific to C++ like (N)RVO.
I would guess a decent C++ compiler can create optimized code that is on par with a decent C compiler. Of course, it all depends on what the code is doing. I would not expect much difference if you took some real-world C code, compiled and optimized it with a straight C compiler and did the same with a C++ compiler suite.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
pplshero54 wrote: I keep hearing that c++ is less efficient than c
it all depends on how you write it.
for example, you can mimic much of what C++ does with C structs and function pointers acting like pseudo-objects; you can simulate inheritance and virtual functions and member variables, etc.. and many C programs do exactly that. in fact, nearly every significant C-interfaced library i've seen does it (ex. LibTiff, LibPNG, JpegLib, etc).
so, ask yourself: is that efficient ? because, that's a lot like what's going on behind the scenes with C++.
Cleek | Image Toolkits | Thumbnail maker
|
|
|
|
|
My own experience is yes, VC++ creates as good, and in many cases better, compiled code compared to the equivalent C code.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
pplshero54 wrote: I keep hearing that c++ is less efficient than c.
About 99,9% of the time this is the wrong question.
The Question is if you solve your problem faster with C, C++, Java or C#.
Coding time is very expensive.
This is what counts, not some split seconds the user saves while opening a window or writing a file.
That said, there are the rest 0,01% of cases - those that really need optimization.
Here, a better algorithm tends to speed things up more than just a switch in coding language.
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
I am programming a 3d game that is very time critical
pplshero54 gives his most thanks
|
|
|
|
|
pplshero54 wrote: I am programming a 3d game that is very time critical
I am positivly sure that only certain parts of it are really time critical. 3D graphics and physics engine, for example.
But large parts of it can be made in almost any language.
Refer to the port of Quake to DotNet. Or just remember that scenery and artificial intelligence are often coded in a more or less proprietary scripting Language.
So - profile your code and see which parts are the real bottlenecks.
Then optimize these and their surroundings.
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
I've got a popup dialog, which pops up near the mouse click. As the mouse can be clicked near the edge of a screen, it could fall outside the visible area. I could use GetSysParams (CX / CY_SCREEN), but I'm trying to be good and multimonitor aware.
In my ramblings, I'm sure I've come across a function along the lines of:
BOOL AdjustRectangleToMakeItBeOnAScreen (RECT *rc, UINT fFlags);
in the past, but I can't find it...
I thought it was one of the shell's helper functions, but it doesn't appear to be their either.
Any clues?
Iain.
|
|
|
|
|
Dunno about that function you mention, but GetSystemMetrics(...) is still your friend here...
Look up the SM_CMONITORS , SM_XVIRTUALSCREEN and SM_YVIRTUALSCREEN values for more information.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
I found a couple of routines, GetNearestMonitor, and GetMonitorInfo (from memory), and rolled my own function in the end.
I might even post it!
Iain.
|
|
|
|
|
|
Thanks - I'll have to try that on my popup dialog. If it works, its a very neat solution
|
|
|
|
|
Just one point, it doesn't ensure dialogs are not split across multiple monitors. You might like to add that feature - it's annoying when they are...
Ryan "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"
|
|
|
|
|
Well caught - I've just tested that it works as advertised, but I'll have to go with my brute force approach. It will commonly appear near the edge of the screen, so the risk of being split is quite high.
Thanks for the heads up Ryan!
Iain.
|
|
|
|
|
You're welcome. I've been bitten by the same thing
Ryan "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"
|
|
|
|