|
Member 10215814 wrote: Each new thread I create allocate memory in the heap, but the call to FreeLibrary() does not release that memory.
What makes you think that the first is related to the second?
|
|
|
|
|
I'm not sure I understand your question...
I have no memory leaks and I see the memory usage increasing at every new created thread. So I presume that the "per-thread" heap memory is not released by the call to FreeLibrary().
|
|
|
|
|
MarxF wrote: I presume that the "per-thread" heap memory is not released by the call to FreeLibrary(). Why would it be? The two are not related.
|
|
|
|
|
A common misconception about Task Manager numbers is that they tell something about the memory your program is consuming. This is not what those numbers tell you. They tell you the amount of address space that is in use. This has nothing to do with the amount of that address space your program is actually using. The blocks of memory that your code, or the library, freed are still in the address space, but they are available for subsequent allocation. The numbers you see in Task Manager are almost but not quite completely useless for telling how much of your memory is in use. If you see it shrink, this is good, but if you don't, it is not necessarily bad. If it's really important to you, use the heap-walking functions to track what is going on.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
As already noted, there is no relation between the mapping of the library into the address space of your process and the memory allocated by your threads.
LoadLibrary works per process, not per thread. So you add can add a HINSTANCE member variable to your class, load the library from within the constructor or your Start() function, and free the library in the destructor.
|
|
|
|
|
Dear all:
I try to beep from buzzer(not speaker) on motherboard in win 7. How can I use winRing0.dll to control buzzer make sound?
Does any sample code or link?
And I need the winring0.lib, winring0x64.lib, winring0.sys, winring0.dll, winring0x64.dll, winring0x64.sys.
I search these files so difficult.
Who can give me these files or a valid download link, please?
Thanks for your help, Victor.
modified 12-Mar-14 12:36pm.
|
|
|
|
|
|
Dear Rage:
I can't download with the link by used Svn.
Could you send me these files, please?
I have been try your reference, but it still no sound with buzzer.
Thank for your help, Victor
|
|
|
|
|
cedricvictor wrote: Could you send me these files, please?
You would have to install svn to be able to check out. I have no installation of svn on my working computer, so I will not be able to send you the files.
cedricvictor wrote: I have been try your reference, but it still no sound with buzzer
Is the code running ? Is your buzzer working at all ?
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus
Entropy isn't what is used to.
|
|
|
|
|
Hello. I am a beginner in audio/video.
+ Why do we use Sleep() function (or timer) when we are processing audio/video samples.
+ If we are rendering a video where our frame rate is 29 fps, then what value should be passed to the Sleep() function?
+ Is this what is known as Latency?
modified 12-Mar-14 6:23am.
|
|
|
|
|
- Sleep is used to pause programm execution. I don't know why are you using it while processing audio/video.
- Again, it depends on your actual implementation.
- No, that's not latency, see Wikipedia[^].
Veni, vidi, vici.
modified 12-Mar-14 9:13am.
|
|
|
|
|
I may have wrongly used the term processing. I am actually displaying the video frames (frame rate = 29.97 fps) onto a dialog. Now when I didn't use Sleep(), the 18 second video completed in just 4-5 seconds. But after putting Sleep(25), it almost runs normally. What does this mean to you?
modified 12-Mar-14 9:01am.
|
|
|
|
|
Can you post your code ?
You have to time your rendering, which is what you are doing in an awkward way with the Sleep instruction. If your target rate is 30 fps, you have to exactly wait 33ms between displaying each frame (which is obtained more or less with your Sleep(25)), but you don't use the Sleep instruction for that !
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus
Entropy isn't what is used to.
|
|
|
|
|
This[^] might be an interesting read regarding Sleep(). I agree with Rage that Sleep() is not the best choice here, possibly waitable timers or SetTimer()?
|
|
|
|
|
Hi
I am trying to get data from grid of external application. I tried WM_GETTEXT on grid control which is a child window. But SendMessage() returns blank value. How can I get data from grid. I can see its class from Spy++ as "Txt Grid Control" without any caption.
Is there any way I can get text of this grid control.
|
|
|
|
|
You cannot use WM_GETTEXT to get the content of a composite control. You need to find a way to iterate through all the child controls of the grid to access the content of each. And even then it will depend largely on the control's internal implementation whether you can actually get access to the data.
|
|
|
|
|
Could you post your code ?
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus
Entropy isn't what is used to.
|
|
|
|
|
In My application, I have used the following code to get the region of a dialog.
HRGN hRgn = CreateRectRgn( 0, 0, 0, 0 );
int nRet = GetWindowRgn( hRgn );
if(ERROR == nRet)
{
DWORD dw= GetLastError();
}
The problem is that, sometimes "GetWindowRgn" returns error "invalid handle" even if CreateRectRgn returns a non-null handle which is used for GetWindowRgn.
I have set the region in onSize(). So dialog have region.Also after GetWindowRgn returns error, when i call GetWindowRgn() again, second call is working fine !!!
Issue is reproduced only sometimes in a Windows 7 machine.
Anyone already faced similar issue?
Thanks,
Arun
modified 12-Mar-14 0:20am.
|
|
|
|
|
Try putting an IsWindow check before calling GetWindowRgn .
if (::IsWindow(m_hWnd))
GetWindowRgn(hRgn);
«_Superman_»
I love work. It gives me something to do between weekends.
Microsoft MVP (Visual C++) (October 2009 - September 2013) Polymorphism in C
|
|
|
|
|
What does GetLastError tell you?
|
|
|
|
|
hi,
GetLastError shows 6, ie. invalid handle. But when i call method again after failure occurs, its works fine
I have workarounds for the problem. But I am curious to know the reason. why its happened only some times even if dialog have region.
Thanks in advance
Arun
|
|
|
|
|
atm.menon wrote: why its happened only some times Impossible to tell without a lot more diagnostic information.
|
|
|
|
|
I'm maintaining C++ code ported form VC6 into VS2010. The class wizard of VC6 uses comment delimiters started with
The class wizard of VS2010 seems not using them anymore.
New items are not longer added before the
but writing for example an ON_MESSAGE after a group of ON_MESSAGE.
It looks that the MFC comment delimiters are outdated and useless.
Is it safe to remove them from the code?
modified 18-Mar-14 7:52am.
|
|
|
|
|
It is safe to remove them if you don't want to use VC6 anymore. VS 2002 and later did not use these markers.
|
|
|
|
|
the comment delimiters only used by IDE(vc6.0) , so when you add code manually, you can add code in anywhere. and you can remove the comment delimiters, but the IDE class warized will can't use!
|
|
|
|