|
MacRaider4 wrote: ...the UI is no longer "responding"... This is usually related to the main thread processing something and the UI cannot respond to the WM_NULL message.
"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
|
|
|
|
|
That is correct, it is however working "fine" on the other 2008 R2 Server. The window grays out and has "not responding" in the ribbon, but it still carries on and completes. However on this server it quits.
|
|
|
|
|
I recommend that you use the remote debugging tools in Visual Studio to find where it is hanging up.
Remote Debugging[^]
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
My code looks like this:
int CMainClass::Start()
{
.......
for(int = 0; i<size; i++)
{
CWinThread * pWinThread = AfxBeginThread(MyThreadFunction, this);
}
.......
}
.......
UINT __cdecl MyThreadFunction(LPVOID pParam)
{
CMainClass *pArg = (CMainClass*) pParam;
pArg->GetList(); return 0;
}
........
int CMainClass::GetList()
{
HINSTANCE hLibrary = LoadLibrary(L"winhttp.dll");
........
........
FreeLibrary(hLibrary);
return 0;
}
My problem is that despite the call to FreeLibrary(), winhttp.dll is not unloaded. Each new thread I create allocate memory in the heap, but the call to FreeLibrary() does not release that memory.
Is there a way to force the unloading of the library and the release of the memory?
Thank you!
modified 12-Mar-14 17:43pm.
|
|
|
|
|
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
|
|
|
|