|
I check this code, whether i can use it for my applciation. anyway Thanks a lot for your help.
Regards,
Ram
|
|
|
|
|
Hi,
I have a CListCtrl with CProgessCtrl inserted as Items.
When I scroll the list, I lose my CProgressCtrls.
Any help would be greatly apreciated.
Thanks in advance.
|
|
|
|
|
|
I thought it would be interesting to note the immense degree to which the new "safe" C-runtime string functions slow down your program.
I have a program that loads about 6,000 strings from a disk file when it starts. Each string gets copied into its own buffer.
When I tried using the new strncpy_s() function to copy each string, the loading took about 15 seconds, no exaggeration.
But when I switched back to plain ol' strncpy() the loading sped up to only about 5 seconds.
Since the loading takes place at program startup, performance is paramount.
So I thought I would post this just as an example of how there are times when safety comes at too great a cost. Plus, if I had been forced to write the program on the .NET framework, there's no telling how slow it would be!
|
|
|
|
|
Interesting. I always new that safety, in general, comes at a price but still I would not have guessed strncpy_s would be so much slower then its "unsafe" brothers.
Steve
|
|
|
|
|
Thanks for sharing the results.
Frankly, I can't see the point of these "Safe" functions. Not only they are unportable and slow, but also unsafe as well, dispite the name.
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
|
|
|
|
|
Perhaps they should have called them the "potentially safer" functions. This doesn't roll off the tongue as well or inspire as much confidence however.
Steve
|
|
|
|
|
I inherited an old VC++ 6 project and notice that one of the build options is BCDebug.
Can someone here comment on what that is? I know what the standard Debug and Release builds are for but what is BCDebug?
My Blog[^] FFRF[^]
|
|
|
|
|
Probably a custom option - compare the optionsbetween Debug and BCDebug, probably one of tem defines a symbol that is used to include / exclude certain stuff.
Some of us walk the memory lane, others plummet into a rabbit hole
Tree<t> in C# || Fold With Us! || sighist
|
|
|
|
|
|
|
Hi,
Here, I would like to simulate the keyboad values. For example, If I pressed "A" key on keyboard then, I have to replace the vlaue "A" with "C" and if I press "A"+"P" together then I have to generate some "C". Scenario, is like this:after my application is up and running, when ever I type A then corresponding modified value has to be written on notepad, doc excel and even in my application programming. So, system wide changes has to be done.
So, in thi regard I have just started working using Keybd_event(), but whatever the knowledge I'm having at this point on this topic is not sufficient enough, so please help me to solve this issue.
Thanking You and Regards,
|
|
|
|
|
Using win32, what would be the best way to entirely delete a section name and its keys from an ini file? I can't find any API that would let me do this. Thanks.
-matt
|
|
|
|
|
I thought it was passing NULL to the second parameter of WritePrivateProfileSection() , but the current documentation doesn't state that. I'd test it to see.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
Yep..that did it. Thanks a lot for the help.
|
|
|
|
|
Hi, I'm developing an application that gives the user certain options to enable and disable. Some of these options require that the user has certain privileges. Is there a function that I can use to check if a user has these privileges, such as SE_DEBUG_NAME and privileges to edit the registry. I appreciate any help I can get thanks.
|
|
|
|
|
Hi,
Could please someone help me with this basic question on socket, here is a rough syntax for creating multiclient connection. Each client connection runs on new thread...
<code>
CreateConnection()
{
SOCKET s = socket(...) //create sock stream socket
bind(..) //bind to port
listen(s, somaxconn) //listen max connection
while(1)
{
DWORD val = WSAWaitForMultipleEvents //listen for network event
if (val == WSA_WAIT_EVENT_0 ) //signaled state, so try to accept connection
{
if(accept(s,..) == SOCKET_ERROR)
{
//socket error due to queue full
//What to do here?
//Do i close the socket(s) and exist the appln? OR
//break from here & start listening for new connection event
}else
CreateThread() //create new thread
}
}
}
</code>
Thanks guys
Mohan
-- modified at 8:50 Sunday 25th June, 2006
|
|
|
|
|
mohanrajh wrote: if(accept(s,..) == SOCKET_ERROR)
{
//socket error due to queue full
//What to do here?
//Do i close the socket(s) and exist the appln? OR
//break from here & start listening for new connection event
}
When accept(s, ...) returned an invalid socket, something went wrong with that channel. At the minimum, you should close that socket. There is a good chance that you cannot accept the same connection any more. Your program may continue if that connection is not critical to your application. But, terminating the program can reset all sockect channels associated with it.
Best,
Jun
|
|
|
|
|
Hi Jun,
Thanks for your answer. If there is CONNREFUSED (due to queue full) error for a new client connection, rather than closing the socket, can i just skip it & wait for new connection?
Can the same client can connect to server after few minutes?
If i do the above said, will this affect any new connections from different client?
Appreciate your suggestion.
Thanks
|
|
|
|
|
All the accept error codes are listed here.
As you can see, whether you should skip this loop but keep the socket alive really depends on the severity of the error.
In your case, I think WSAENOBUFS was the error code corresponding to your CONNREFUSED error, which means the following possible causes:
1) Not enough memory
2) Can't create new file descriptors
3) Not enough other resources
Normally, that is pretty serious error and not easily recoverable.
Best,
Jun
|
|
|
|
|
Ok, after a double check, there is an error code WSAECONNREFUSED which I think is what you've got. But it's not the return by accept() from the server, but by connect() from the client. This usually results from trying to connect to a service that is inactive on the foreign host, that is, one with no server application running.
Best,
Jun
|
|
|
|
|
How do i change a Unicode project to MBCS using Visual Studio 2005?
What i've tried:
I opened the properties dialog for my project and clicked on "C/C++->preprocessor".
When i clicked on the "..." button at the right hand side of the "preprocessor definitions" box, there is a checkbox saying "Inherit from parent or project defaults" and a box that lists the inherited values: "_AFXDLL,UNICODE,_UNICODE".
I unchecked this box and added "_AFXDLL" and "_MBCS" to the original list of preprocessor definitions.
The list now looks like this: "WIN32;WINDOWS;_DEBUG;_AFXDLL;_MBCS;$(NOINHERIT)"
Now when i compile, this error comes up:
msvcrtd.lib(wcrtexew.obj) : error LNK2019: unresolved external symbol _wWinMain@16 referenced in function ___tmainCRTStartup
|
|
|
|
|
You just needed to modify your project properties. Go to Configuration Properties and look at Project Defaults. Change the Character Set from Unicode to MBCS. If it's a new project, the question you should ask is, it's 2006, why aren't you using unicode?
|
|
|
|
|
Thanks. To answer your question, the main problem i was having is this:
CString tempbuf;
tempbuf = "Job number,";
file.Write((LPCTSTR)tempbuf,tempbuf.GetLength());
file.Close;
When i open the file, it has 'J o b n u' in it.
I was told to change my project settings to MBCS to solve this problem. Is there any other way?
|
|
|
|
|
That depends on what you are doing and why you consider this a problem.
file.Write((LPCTSTR) tempbuf, tempbuf.GetLength() * sizeof(TCHAR));
You would then have a file with a UTF16LE string that says "Job number,". (edit: for unicode builds, and a normal ascii string for your mbcs build)
Have you considered...
CStringA tempbuf;
tempbuf = "Job number,";
file.Write((LPCSTR)tempbuf,tempbuf.GetLength());
file.Close; ?
-- modified at 6:40 Sunday 25th June, 2006
|
|
|
|