|
Alan Kurlansky wrote: How could I find out where a runaway process is looping?
Interesting choice of words. It contains the WinDbg command that could help your situation.
If you attach the WinDbg debugger you can issue the !runaway command which will show you the thread times. Any thread in an infinite loop will probably consume the most cpu time.
You may also want to try "!locks" and "!analyze -v -hang" in case its not an infinite loop and actually a deadlock caused by synchronization objects.
Off Topic: I really wish the VS team would add a commandline interface into the VS debugger.
Best Wishes,
-David Delaune
|
|
|
|
|
Hello Friends
I m using two ListBox in a dialog.I want to know that how can i get notification If i select member of Second List Box and to unselect the first listbox.
Thanks & Regards
Yogesh
|
|
|
|
|
Can't you just handle the ON_LBN_SELCHANGE notification?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hello,Thanks for the reply.
I am using ON_LBN_SELCHANGE. but with that i am using LButtonDown where do i need to know which listbox is selected.And whenever i change selection from one listbox to another.then first LButtonDown is called.And I think ON_LBN_SELCHANGE is the notification If i change the selection of strings in One Listbox.
I want to know when I click on other listbox and I want to deselect all the strings of first listbox.
Regards
Yogesh
|
|
|
|
|
Maybe I din't get you, but the notification should be mapped to two different handlers, one for each listbox (each handler handles -pardon the pun- just the 'selection change' coming from its listbox).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Thx,I used ON_LBN_SETFOCUS to get focus of one listbox.but now i want the handle of those listbox on lBUttonDown.
I used
CWnd* pWndMlb = GetDlgItem(IDC_LISTBOX);
CWnd* pWndLlb = GetDlgItem(IDC_LISTBOX_TEMP);
bur both re coming NULL.
Regards
Yogesh
|
|
|
|
|
Are you sure IDC_LISTBOX , IDC_LISTBOX_TEMP are child controls of the window from where you're invoking GetDlgItem ?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
|
Could you post the relevant code, please?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
modified on Wednesday, November 24, 2010 8:24 AM
|
|
|
|
|
Hello Sir
I got the HAndle of tht ListBox in Lbutton Down.
Thanks for ur precious time .
Regards
Yogesh
|
|
|
|
|
Hi,
I pass two input string from VBA(forms) to (Vc++)DLL. This vc++ DLL is concatinate the string and return to VBA Forms.
please any sample code or idea?
Regards,
M.mathivanan
|
|
|
|
|
|
Unless you are doing some other string manipulation other than just concatenating two strings, why don't you just concatenate them within the VB app?
It was broke, so I fixed it.
|
|
|
|
|
I agree, Excel had its own C compiler so even for speed advantages I cant see the point of calling to vc++ to concatenate two strings! If it was another datatype that would be a different story.
|
|
|
|
|
Hi all,
I have a working program that reads stocks symbols and values from a text file and do some operations on the data, and then it outputs the the data as two reports. The first report is sorted by stock symbols, and the other report is sorted by percent gain/loss.
I'm having difficulties understating how these sort functions are doing the comparisons..
Can you guys provide some explanation please?
template<class elemType>
void listType<elemType>::sort(){
int i, j;
int min;
elemType temp;
for (i = 0; i <length; i++){
min = i;
for (j = i + 1; j < length; ++j)
if (list[j] < list[min])
min = j;
temp = list[i];
list[i] = list[min];
list[min] = temp;
}
}
void stockListType::sortByGain(){
int i, j;
int temp;
indexByGain = new int[length];
for(int c = 0; c < length; c++){
indexByGain[c] = c;
}
for (i = 0; i <length; i++){
for (j = i + 1; j < length; j++){
if (list[indexByGain[j]].getPercentChange() > list[indexByGain[i]].getPercentChange()){
temp = indexByGain[i];
indexByGain[i] = indexByGain[j];
indexByGain[j] = temp;
}
}
}
}
|
|
|
|
|
The algorithm is something like this -
1. Take the first element in the array.
2. Compare with the rest of the elements below it to check if there is a lesser value.
3. If there is a lesser value, swap the elements.
4. Take the next element in the array.
5. Go to step 2.
The std::sort function would be more efficient if you can use it.
|
|
|
|
|
Babylon Lion wrote: Can you guys provide some explanation please?
See here.
"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
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
thank you
|
|
|
|
|
I may have gone mad but this is a selection sort surely...
Edit: my hesitation is due to the fact that (as pointed out above) you never see these sorts of sorts in the wild because there are much better sorts of sorts.
|
|
|
|
|
As already suggested, that's the famous bubble sort (the most intuitive one: lower elements comes up).
You may notice that
for (i = 0; i < length; i++)
could be replaced by
for (i = 0; i < length-1; i++)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
So whenever a comparison like that is required, a bubble function is used, right?
|
|
|
|
|
There's no bubble function, actually. From Wikipedia[^] : "The algorithm gets its name from the way smaller elements 'bubble' to the top of the list".
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Babylon Lion wrote: whenever a comparison like that is required, a bubble function is used, right?
The bubble sort is not the most efficient method of sorting data as there is a lot of swapping going on. In a short list (array) it works fine and is quicker and easier to code. With a shorter list there really isn't too much loss of efficiency.
This site provides a good visual demonstration of the different types of sorts http://www.sorting-algorithms.com/[^]
As Superman states use the std::sort function if you can, although learning sort algorithms can be useful.
Good luck!
It was broke, so I fixed it.
|
|
|
|
|
QuickSort is infinitely faster than a bubble sort. I use it exclusively. It recursively breaks the list up into smaller and smaller pieces. The resulting time-to-sort relative to the length of the list is linear instead of exponential.
Found this from Googling QUICKSORT.
There are many other sources of info out there.
void swap(int *x,int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
int choose_pivot(int i,int j )
{
return((i+j) /2);
}
void quicksort(int list[],int m,int n)
{
int key,i,j,k;
if( m < n)
{
k = choose_pivot(m,n);
swap(&list[m],&list[k]);
key = list[m];
i = m+1;
j = n;
while(i <= j)
{
while((i <= n) && (list[i] <= key))
i++;
while((j >= m) && (list[j] > key))
j--;
if( i < j)
swap(&list[i],&list[j]);
}
swap(&list[m],&list[j]);
quicksort(list,m,j-1);
quicksort(list,j+1,n);
}
}
|
|
|
|
|
danataylor wrote: QuickSort is infinitely faster than a bubble sort
In general it is; but in its worse case, it's as bad as other sorts.
Watched code never compiles.
|
|
|
|