|
ptr2void wrote: However, the search is very slow..
Can I use threads to accomplish this??
So are you assuming that using threads will speed up the process?
led mike
|
|
|
|
|
Yes I am assuming that threqads would make it faster..
Am I wrong? Please correct me..
Since I am using recursion, If I can spawn a thread whenever a new directory is found I am assuming that the search would be faster..
Please correct me if I am wrong and it would be very helpful if you could guide me in some way as to how the search could be faster..
|
|
|
|
|
ptr2void wrote: Yes I am assuming that threqads would make it faster..
Am I wrong?
No you are not wrong, um Yes you are wrong. See it's just not that simple, threading never is and anyone who tells you different either doesn't know that they are talking about or is an absolute genius and therefore their experience does not apply to you and me.
Creating threads and switching context between them takes resources and processing cycles so technically can "slow down" a procedure. If the execution context ( hardware, running software ) provides a scenario where multiple processors are available and therefore can more efficiently execute your procedure then yes it could be faster (emphasis on "could" because multiple processors are not the only criteria in your case since there is still only one bus and one drive that you are accessing and therefore caching will come into play as well), otherwise it will just be slower. Now how do you determine if the execution context is favorable? There almost is no way. Also even when it is favorable, how much faster would it be? Don't know but in your case likely negligible.
This is really far more complex than I am qualified to explain but have I provided even a small explanation that helps?
led mike
|
|
|
|
|
Hi
How To using office Word 2003/2007 in Manage C++
|
|
|
|
|
Office Interop Library. Google for it and there is a lot on it...
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Background: I'm trying to build a managed wrapper around a C library, using C++/CLI to build a DLL that will be referenced by a C# program. This is my first look to C++/CLI, so even little things seem really hard.
Now, my first problem. The C library has lots of parameters passed by pointers, e.g.:
void H5get_libversion(int * major, int * minor, int * release);
What I'd like to have is an equivalent method in C++/CLI, something that in C# would be:
void GetLibVersion(ref int major, ref int minor, ref int release);
The only way I found to achieve this is doing something like:
void HGlobals::GetLibVersion(unsigned int % major, unsigned int % minor, unsigned int % release)
{
unsigned int _major, _minor, _release;
H5get_libversion(&_major, &_minor, &_release);
major = _major;
minor = _minor;
release = _release;
}
Do I really have to do this manual "duplication"? Isn't there a better (shorter) way?
Thanks in advance
Luca
The Price of Freedom is Eternal Vigilance. -- Wing Commander IV
En Það Besta Sem Guð Hefur Skapað, Er Nýr Dagur.
(But the best thing God has created, is a New Day.)
-- Sigur Ròs - Viðrar vel til loftárása
|
|
|
|
|
Maybe try pinning those moveable managed "pointers" (tracking references)
void NativeFunc(int *a, int *b)
{
*a = 10;
*b = 20;
}
public ref class TestRefClass
{
public:
TestRefClass() {}
void TestMethod(Int32 %a, Int32 %b)
{
pin_ptr<Int32> pa = &a;
pin_ptr<Int32> pb = &b;
NativeFunc(pa, pb);
}
};
int _tmain()
{
int a = 3;
int b = 4;
TestRefClass obj;
obj.TestMethod(a, b);
return 0;
} Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi..
I am new to C++/CLI Programming..
I am using a user defined listbox and I am adding the items to it another method..
So the listbox dosent get dynamically painted..
I want to know is there any OnPaint() method for this??
Also do I have to make this listbox as DrawMode::OwnerDrawFixed ??
Kindly help..
|
|
|
|
|
The listbox will have a draw event that gets called to draw an item if they are owner drawn
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Christian Graus wrote: The listbox will have a draw event that gets called to draw an item if they are owner drawn
Here is some code:
void SearchFiles::SearchFileByPath(LPCTSTR path, LPCTSTR filename, System::Windows::Forms::ListBox ^ objListBox)
{
//performing some logic
objListBox->Items->Add(System::String(path).ToString());/*here adding items*/
//here want to draw it by: objListBox->DrawItem();
/*what to add in System::Object^ sender , DrawItemEventArgs^ e ?*/
}
|
|
|
|
|
Okay let me explain my problem:
I have a form1.h in which I am initializing the listbox as follows:
void InitializeComponent(void)
{
this->obj = (gcnew System::Windows::Forms::ListBox());
this->obj->Location = System::Drawing::Point(0, 0);
this->obj->Name = L"obj";
this->obj->Size = System::Drawing::Size(120, 95);
this->obj->TabIndex = 0;
}
Now I am calling another function to add some items as follows:
sf->SearchFileByPath(path,filename,obj,sender,e);
And in that particualr function , I want that the listbox items should dynamically be shown as the program runs..
So I tried adding the ListBox::DrawItems(sender,e) ..
But the error is like:
cannot convert parameter 5 from 'System::EventArgs ^' to 'System::Windows::Forms::DrawItemEventArgs ^'
System::Windows::Forms::DrawItemEventHandler ^System::Windows::Forms::ListBox::DrawItem': event does not have a raise method
Please help me..
|
|
|
|
|
I build a system and run it on few nodes concurrently. I want the configuration status of the system on those nodes be the same when one of the nodes change it. Let say 3 nodes A,B and c. When A change a system configuration to on, then the system configuration of other nodes will be synchronized to on immediately. My friend tell me a concept, build a simple database with excel store the configuration status from those node, latest status will overwrite the old status, then each nodes refer to it. Can somebody gv me some hints how to make it? On codeproject did anyone see any article bind with this concept? I don't know what keyword to search. Thx
|
|
|
|
|
Hi
how to Convert Struct To Byte
|
|
|
|
|
What do you mean by convert ?
Prasad
MS MVP - VC++
|
|
|
|
|
Socket ^s;
s->Send(byte.........
I want to send struct
|
|
|
|
|
The simplest method would be to create a Byte array the size of the structure and copy the structure bytes to the array.
MyStruct mystruct;
array<Byte>^ ByteArray = gcnew array<Byte>(sizeof(MyStruct));
for (int i = 0; i < sizeof(MyStruct); i++)
ByteArray[i] = ((unsigned char *)&mystruct)[i];
Socket ^s;
s->Send(ByteArray); There's other problems which may or may not be a factor in your situation See here[^]
A more robust solution is to make classes/structs serializable so the conversion to/from a Byte array
is built in to the class.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Dont work
my struct is manage
ref Struct MyStruct
{
}
but sizeof dont work for manage Struct
|
|
|
|
|
Oh In that case you should probably use serialization.
Serializing Objects (.NET)[^]
You can use .NET serialization (like Binary Serialization[^]) or you could serialize
the struct yourself by writing whatever bytes make up the structure.
.NET serialization is robust and has the bonus of working with other .NET languages.
If the data is being sent to non-.NET apps then you'll need to write custom serialization.
Regardless of the method you use, you need a array of bytes - you can fill that array
however you want, as long as there's enough info there for the receiving end to reconstruct
the structure.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Dear Sir,
How do you print in Visual c++ NET 2005 ?
|
|
|
|
|
hey mikobi you've been on CodeProject for a while now, why don't you look through the articles to see if there are things that will help you in there?
led mike
|
|
|
|
|
Dear Sir,
I don't see what can help me, that is why I ask if someone know an article out side this site that can help me.
Often, they give some references that are not in this site.
Can you show me in this site, what can help me among articles are under Desktop -> Printing.
I Am waitting
|
|
|
|
|
Following is my issue.
-------------------------------------------
I have a unmanaged application ( C++ , .exe ) which has a class CMyClass
with a public member fMyFunct(). You can assume this C++ application is built with /clr option.
I need to instantiate CMyClass in a different managed ( C# ) application and call fMyFunct().
Many thanks if any of you can send me a sample which demonstrate above things ( Remember I can't manipulate C++ application apart from project settings. But you can do anything in C# application )
----------------------------------------------------
|
|
|
|
|
You can't create native/unmanaged C++ objects from managed code like C#.
You need to write a managed (ref) class wrapper for the unmanaged C++ class.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi, I m a VC++ guy, i have worked on VC++ / MFC / C++ . But at present working only on C++ . Like to move into .Net , can someone guide me which would be the better option to learn WebApplications Or windows application , even in case of Carrier growth.
Also VC++.NET has scope like C# ?
Newww
|
|
|
|
|
I'd say C# and Winforms first, then move into C#/ASP.NET. that means you'll be on more stable ground as you move into C#.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|