|
The need for so many threads is an indication of a design flaw. While it may be possible (I do not know the maximum count), switching between the threads, or even searching the list of threads, will have a serious impact on performance. Remember that a multi-threaded application, unless run on a multiprocessor machine, can be slower than its single-threaded counterpart simply because of all the context switching that must go on.
See here, here, and here.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Could someone help to explain this statement in c below:
void (*fixup_irq)(struct pci_controller *, pci_dev_t);
Question 1 : Why can it put "viod" in this statement since this is not a method?
Question 2 : Why can it put "(*fixup_irq)" as cast method here?
Thanks a lot!
|
|
|
|
|
Looks like a function pointer to me.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
this is not a cast!
fixup_irq is a function pointer.
you can assign any function to it that has return type void and exactly the
same parameters in its parameterlist
if you got somewhere a func defined as:
void AMethod( struct pci_controller* par1, pci_dev_t par2)
{
...
}
then you can do the following
//assign a method to fixup_irq
fixup_irq = &AMethod;
pci_controller var1; //for the 1st parameter
pci_dev_t var2; //for the 2nd parameter
.... //do some stuff
//and here you call AMethod using the function pointer
(*fixup_irq)(var1, var2); //this is equivalent to calling AMethod( var1,var2);
This is in a fast draft what it means... Hopes this clears it up for you somehow? It doesn´t really show in this example but function pointers can be a real help in some situations.
Cheers,
Davy
|
|
|
|
|
GDavy wrote:
It doesn´t really show in this example but function pointers can be a real help in some situations.
To complete the response from Davy, this is used when you dynamically load functions from a dll. You load your dll, then it returns a handle and with this handle you can call an API function that will return a void pointer to a function in the dll (providing it's name).
So, you will need to store this pointer somewhere and it's here that these kind of things enter.
|
|
|
|
|
I got it finally. Thanks a lot!
|
|
|
|
|
Hi All!!!
I Had A strange requirement regarding RichEditCtrl.
I need to Limit the TextLength(Max Charecters) in Each Line of Richeditctrl to 50.In addition to that i need to insert spaces after every 10 charecters in each line.so in each Line Altogether 5 spaces will be there.
In case if user added,deleted,modified charecters the alignment with spaces should not change..this is my requirement.I tried USing LineLength but notreaching my requirement.
Thanks
If you have faith in the cause and
the means and in God, the hot
Sun will be cool for you.
|
|
|
|
|
In that case, you need to store all the characters that aren't spaces, and ignore spaces altogether. Then you need when you display your text to insert the spaces where you need them. There's no point having them as part of the underlying string, if they have to always be there, it's actually a display issue, not an issue of the string value.
I guess the best way to do that is to derive a class from the RichEditControl.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
suppose i have a map<string,int> m;
if i need to search for the location using the int data im currently doing
map<string,int>::iterator iter;
for(iter=m.begin(); iter !=m.end(); iter++)
{
if(iter->second == 10)
break;
}
can i replace this with something like this
iter = find_if(m.begin(),m.end(),bind2nd(KeyEquals(),10));
in which case what would the KeyEquals function object be like???
|
|
|
|
|
fordge wrote:
suppose i have a map m;
if i need to search for the location using the int data im currently doing
map::iterator iter;
for(iter=m.begin(); iter !=m.end(); iter++)
{
if(iter->second == 10)
break;
}
can i replace this with something like this
iter = find_if(m.begin(),m.end(),bind2nd(KeyEquals(),10));
in which case what would the KeyEquals function object be like???
Sure you can in some way. But why would you want to do this? You have a simple, maintainable solution. Why replace it with a geek-style, Boost-ish hack?
|
|
|
|
|
in this case it may be geekish yes..but i still find it more readable
but there may be more generic adapters where it would be better to use something other than that while loop
also most of the bind1st n bind2nd articles deal only with vectors
and was finding it hard to reproduce the same on maps and sets
anyway here is the solution i got from a fellow coder
typedef std::map MyMap;
bool KeyEquals(MyMap::value_type value, int DataValue)
{
return value.second == DataValue;
}
std::string blah(MyMap const& theMap, int thing)
{
MyMap::const_iterator it =
std::find_if(theMap.begin(), theMap.end(),
std::bind2nd(std::ptr_fun(KeyEquals), thing));
return (it==theMap.end())?std::string():it->second;
}
|
|
|
|
|
say i have a data that i should be able to lookup using EITHER a int key or a string key..i repeat EITHER..
what kind of container should i be using
|
|
|
|
|
<a href = "http://www.boost.org/libs/multi_index/doc/index.html" rel="nofollow">boost::multi_index_container</a>[<a href = "http://www.boost.org/libs/multi_index/doc/index.html" target = "_blank" rel="nofollow">^</a>]
|
|
|
|
|
markkuk wrote:
boost::multi_index_container[^]
... and tell us if you get it started
|
|
|
|
|
Currently created a dialog-based project and then populate it with Text Box controls. My problem is that the dialog stops accepting controls when the total number of control is 255. Is there a way to increase the number of controls beyond 255? Already tried putting edit, group box, etc. but still is limited to 255 maximum.
|
|
|
|
|
Create the controls at runtime. The limit is only with the dialog editor, not with Windows.
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"
|
|
|
|
|
I'll try it. Thanks alot.
|
|
|
|
|
Hi,
I dont know
How to make the function hooking on the function like OnOK(), and Other function that was created by you....
I had known used the SetWindowsHookEx with GETTEXT,SETTEXT...
Thanks in advanced
|
|
|
|
|
I have over 200 projects. Many of them are dependnet upon each other in the case of included .LIB files. Is there already a tool that can generate a tree, graph, or even a text listing of the dependencies?
|
|
|
|
|
The File view in the workspace should list out all the dependencies..
This u can c in the visual studio IDE itself.
hope this will help
Zxczc
|
|
|
|
|
Thank you. I can not open each project in the workspace. The idea is to build an automated tool to scan and return information about module dependencies.
I am assuming the #import directive is not being used (else I would have to scan source code as well).
We have over 200 projects and it is difficult to document if a devleoper creates or modifies dependencies. So we want a tool to do it.
|
|
|
|
|
Hi,
I'm trying to create a dialog without creating a resource with all of the buttons for it. How is it normally done using code only? Any reference to a tutorial? I'd prefer using MFC. Obviously people used to do it using Win32, but I don't want to spend too much time on this.
What I'm trying to do is basically write some code for debugging and package it and then import it into my projects easily. So I'll create a modeless dialog with an edit box, then define some global function such as DEBUGPRINT() to write into this dialog. Having to create a resource would make it harder to add to projects.
Thanks.
|
|
|
|
|
You can create dialogs without resources by using the DLGTEMPLATE and DLGITEMTEMPLATE structures with the CDialog::InitModalIndirect or CDialog::CreateIndirect functions.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|
|
Hi, I'm searching for a GUI Builder for Visual C++ 6 (no .NET or MFC). I mean drawing and putting the widgets, and the builder will generate all the code needed, like the WindowBuilder Pro for Smalltalk.
Anyone knows such tool for VC++ ?
regards
|
|
|
|
|
I want to use callback function and want to do it in OO way.
Can some1 plz tell me how to use callbacks in classes. I have done with using the static function. Some1 plz tell me using the non-static method.
|
|
|
|