|
Yes sir,can u explain me in details
|
|
|
|
|
No, I can't do it here, since the facade pattern is a quite large topic and good C++ languaqe knowledge is a pre-requisite.
Anyway I may suggest you reading some good C++ books (see this thread [^] for hints), and the GoF's "Design Patterns" one.
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]
|
|
|
|
|
I want to use the spy++ to get a form control(login button) handle, but I find that it cannot.
If I write the c++ prgram to find the control handle, which methods can be used?
|
|
|
|
|
Without actually seeing that form my guess would be that the button is not a control itself but is drawn and its buttonlike functionality is handled by the form itself, thus, no separate handle. > The problem with computers is that they do what you tell them to do and not what you want them to do. <
> Sometimes you just have to hate coding to do it well. <
|
|
|
|
|
Hi all,
I am working on a MDI(MFC) application. which has customized OnSysCommand function.
after maximizing any child window of the application, if I try to open other child window using windows menu.
the application didn't receive WM_SYSCOMMAND message, so the function OnSysCommand is not get
called and the result the new window is not restored/painted properly.
anyone have the idea why this is happening.
Thanks,
Smith
|
|
|
|
|
I don't think your application should receive this message when opening a child window. See the description here[^] on MSDN. MVP 2010 - are they mad?
|
|
|
|
|
Hi All,
i have a DLL, there is some code as mentioned below:-
char szName[MAX_PATH];
CString csName = "3424234";
wcstombs( szName, csName.operator LPCTSTR(), _tcslen( csName.operator LPCTSTR()));
Now i want to initialize szName array to 0, to aviod the unexpected behaviour.
Now my question is whether i use memset or SecureZeroMemory?
Which is better, and why?
Any help will be appreciated.Величие не Бога может быть недооценена.
modified on Tuesday, February 9, 2010 12:39 AM
|
|
|
|
|
char szName[MAX_PATH] = {0};
|
|
|
|
|
But i am looking for details regarding SecureZeroMemory and memset or memcpy, any way thanks for your help Величие не Бога может быть недооценена.
|
|
|
|
|
I think _superman_ has already sent you a better answer which I think explains the differences. I usually initialize all arrays to zero as I posted before.
|
|
|
|
|
SecureZeroMemory may be a little slow on the x86 platform as it initializes each element of the array in a loop. But for x64 it uses an intrinsic, which will be very fast.
You could also use the C-Runtime memcpy_s function.
To initialize the array to zero at the time of creation, the reply by Rejeesh definitely works in Visual Studio.
|
|
|
|
|
Thanks for the reply.
So you mean in 64 bit processor, SecureZeroMemory will not make much change in time consumption.Величие не Бога может быть недооценена.
|
|
|
|
|
That's correct.
Intrinsics are similar to writing inline assembly instructions.
x64 does not support inline assembly and so you have to use intrinsics.
Read more about intrinsics in the following links -
Intrinsic function[^]
Compiler Intrinsics[^]
|
|
|
|
|
(i think you've got your x86 and x64 reversed here)
|
|
|
|
|
One thing others didn't point out: memset is a CRT call, and SecureZeroMemory is an API call. That's it. I don't think one would be "faster" over the other (practically) to initialize an array of size MAX_PATH .
If you had considered ZeroMemory , there are chances where the compiler can completely optimize out (remove) the call to this function when it detects that the initialised buffer isn't being used anywhere. However, SecureZeroMemory would ensure that the buffer be initialised, even if it isn't being used at all (the optimiser won't rule this call out).
“Follow your bliss.” – Joseph Campbell
|
|
|
|
|
Adam Roderick J 09 wrote: Now i want to initialize szName array to 0, to aviod the unexpected behaviour.
1. You should be using the wcstombs_s() function.
2. You should use that function as documented here[^] to calculate the required size of your destination buffer, and allocating that appropriately. In your example above, if the length of your string exceeds MAX_PATH then you have an immediate memory leak.
3. Clearing the buffer to zeroes before copying the string provides no benefit.MVP 2010 - are they mad?
|
|
|
|
|
Hi,
How can I get the cluster size of any logical drive?
|
|
|
|
|
Use the API GetDiskFreeSpace([^]) Величие не Бога может быть недооценена.
|
|
|
|
|
The GetDiskFreeSpace function cannot report volume sizes that are greater than 2 gigabytes (GB). I have drive more than 2 GB.
Any other workaround....
|
|
|
|
|
Jsut try this link
[^]Величие не Бога может быть недооценена.
|
|
|
|
|
Is it possible to get the selected item of a combo box while navigating the drop list?
i.e., getting the selected items value and text?
Is there a Windows message that handles the mouse selection of each item in combo drop list?
This is when the combo box drop down is active.
|
|
|
|
|
|
Hey guys, i am having problem with displaying my text. my text file is displayed in such a way and is called test.......
Sam Worthington ... Jake SullyasZoe Saldana ... NeytiriasSigourney Weaver ... Dr. Grace AugustineasStephen Lang ... Colonel Miles QuaritchasJoel Moore ... Norm Spellman (as Joel David Moore)asGiovanni Ribisi ... Parker SelfridgeasMichelle Rodriguez ... Trudy ChaconasLaz Alonso ... Tsu'teyasWes Studi ... EytukanasCCH Pounder ... MoatasDileep Rao ... Dr. Max PatelasMatt Gerald ... Corporal Lyle WainfleetasSean Anthony Moran ... Private FikeasJason Whyte ... Cryo Vault Med TechasScott Lawrence ... Venture Star Crew Chiefmore
What i am trying to do is for the program to read "as" and then from there start a new line... thus the expected output is...
Sam Worthington ... Jake Sully
Zoe Saldana ... Neytiri
Sigourney Weaver ... Dr. Grace Augustine
Stephen Lang ... Colonel Miles Quaritch
Joel Moore ... Norm Spellman (as Joel David Moore)
.........(and so on)
This is my coding..
string templine ;
string line;
ifstream myfile ("test");
while (getline (myfile,templine) )
line.append(templine);
char str [] = line ;
char delims[] = "as";
char *result = NULL;
result = strtok( str, delims );
while( result != NULL ) {
printf( result );
result = strtok( NULL, delims );
}
I keep getting the error saying ...
editmain.cpp.98:error: initializer fails to determine size of 'str' modified on Monday, February 8, 2010 1:41 PM
|
|
|
|
|
This is inherently flawed. You have no way to distinguish between "as" as a delimiter and "as" as 2 characters in a name.
As far as your error message, since str is an array of char, you have to specify how big it is to be. You don't.
Why are you mixing std::string and char arrays?
Since you are using std::string, I would suggest you use it and not char arrays at this point. After you have some things more figured out, you could learn how to use char arrays. They are more demanding to get right.
|
|
|
|
|
Cannot assign string object to a char array as follows:
char str [] = line;
May be you can do as follows to correctly use tokenizer function:
char* str = _strdup(line.c_str);
char delims[] = "as";
char *result = NULL;
result = strtok( str, delims );
while( result != NULL )
{
printf( result );
result = strtok( NULL, delims );
}
free(str);
|
|
|
|