|
Alebas wrote: Sometimes I had performance issues and somebody of C++ guys helped me to workaround. (Envy was my feeling at the moments)
...Alebas wrote: Now, my experience with C# is broad and strong.
In my humble opinion, those two are mutually exclusive. If you have to go to a C++ developer for a performance issue in C#, you are likely not as broad and strong as you might believe yourself to be, let alone ready for a senior position!
I would suggest learning C++ for many reasons including the fact that while Microsoft is big, and Mono is making headway, C# does not yet rule the world!
I believe that learning C/C++ will benefit you because it should provide you with a better understanding of what is going on behind the scenes.nbsp; Having to manage your own memory and code (some of) your own algorithms and functionality should also help you recognize when one is a better approach than the other. At least, it will help you learn how to solve your own performance issues without going to someone else!
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
Hi , James.
Thank you for your answer. You have said the same what I was thinking about.
There is a little misunderstanding. I mean that C++ guys helped me to find a solution of a problem, but they did not of course just re-write some piece of program using C++ to make the program working faster. They simply were able to point out very precisely where the problem was. I was very exited by that ability of clear understanding.
When you do C#, many things are pre-implemented for you in NET framework. This greatly enhances your productivity as C# developer, and by common working standards you are really good, and you can say “I’m strong in C#, if you have strong attitude .
But the problem is that if You start learning programming using dotNET, particularly if you do not have special education but mostly self-taught, sometimes you perceive some functionality as obvious environment. You just use .NET features which seem evident and simple up front (outside), but they can have complex pre-implemented internal structure, which is hidden from your mind.
Having practical C++, C, assembler experience is necessary, I think, even if you may use it in 1% of your dotNET projects. Theoretical knowledge of general ideas (overal picture) is good but not enough.
Alex
|
|
|
|
|
Alebas wrote: I mean that C++ guys helped me to find a solution of a problem, but they did not of course just re-write some piece of program using C++ to make the program working faster.
I did not think that is what happened, sorry if I implied that.
I think that an understanding of the Win32 API as it relates to the functionality that is presented to you through the framework would be good to learn. If things like Mono ever become (more?) mainstream, it would also help explain why one feature works differently faster/slower/side-effects on architecture/OS than another. I believe that learning something a bit lower level like C/C++ would help in those areas, as well as an understanding of data structures (linked lists, hash tables, etc.) and algorithms and how they work are are implemented.
As far as assembly, I have never written any significant amount of assembly code myself. I have replaced a memcpy(...) here and there, but nothing serious. I think that an understanding of machine structures/architecture (how a CPU works, particularly ones you are using) and how your OS manages memory is more important, so that you begin to understand things like spatial and temporal locality when dealing with multiple items or sets of data and how they can affect performance.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
While trying to convert an old Pascal program into Visual Studio 6.0 C++ WIn32. The hardware interfaces (for the device) quotes the base address is I/O port 300 (hex) for I/O port commands.
How do you access this address in a C++ Win32 application.
Cheers,
Andy
|
|
|
|
|
The bad news: You can't access the hardware in Win32. At least not in a user program. A driver does have permission to access hardware.
The good news: There are some free drivers to get.
The one I have heard about the most is inpout32.dll. Can be donwloaded from http://www.logix4u.net.[^]
There is others too, such as userport (Google for it).
I haven't tried them myself, so I can't answer questions about them.
Alcohol. The cause of, and the solution to, all of life's problems - Homer Simpson
|
|
|
|
|
|
|
No kidding: Open VC++ and press "F1". You'll get a complete help, and an index in which you can search for specific terms.
~RaGE();
I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus
Do not feed the troll ! - Common proverb
|
|
|
|
|
(Having deleted his own message)
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
Um, Wimp ?
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
James R. Twine wrote: Um, Wimp?
Uhm - yes.
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
Hi,
I created a desktop in winsta0 windowstation. but i am unable to start explorer shell in that.or i do not be able to start a notepad in the desktop.
can anyone tell me why i cant?
any idea is appreciated.
Thanks
~ Selva
|
|
|
|
|
Just a thought - when you try to start the executables, what do the error/return codes tell you? GetLastError() can tell you a lot in situations like this...
Are you sure you are passing the correct ACCESS_MASK bit values?
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
Thanks for your reply james.
I have given all the access while creating the desktop..
application error occurs while starting explorer.
Getlasterror returns nothing ...
seems application error happens after starting the explorer....
and to note i am doing all these things from a service...
any idea?
Thanks
-- modified at 7:56 Thursday 21st December, 2006
~ Selva
|
|
|
|
|
Again, what error codes are being returned?
Does the service have the "Allow Service to interact with the Desktop" setting set?
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
Thanks again,
Getlasterror doesnt return any errorcode..actually the createprocess method succeeds(returns true)...but i havent set 'Allow Service to interact with the Desktop' right..How can i set it programmatically...
Is there any API to do this...and FYI, i am creating a custom desktop in winsta0 windowstation....
mine one is a simple service application where i donot create any user account to run my service (oops!!! i dont know to do that actually).
i think we can use ntrights to give the rights. but for whom should i give the right..can i directly give the service name to set the right..
pls correct me if i am wrong..
~ Selva
|
|
|
|
|
I m using c:\winnt\explorer.exe as the command line parameter..
and i am calling the createprocess function immediately after the createdesktop function..do i have to set any environments??
thanks
~ Selva
|
|
|
|
|
You should use GetWindowsDirectory(...) to get the location of the Windows directory on the target system.
You should not have to manually set up any environment variables unless other applications you are using specifically depend on them.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
ChangeServiceConfig(...) can be used to turn that setting (SERVICE_INTERACTIVE_PROCESS ) on and off.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
Thanks James...Let me try them out...
Peace
~ Selva
|
|
|
|
|
Hi Shiv here,
I am in developement of a toolbar for IE7.0 vista. Toolbar works
very fine with protected mode off. But once I turn it on, I found that
it does not even respond to WM_COMMAND, then all other is total invain.
The low integrity and all other questions can come when it will try to access any file or anything. But here it does not even respond to clicks
or hits. please anyone can help me atleast to get the problem other than this.
Regards
Shiv
|| ART OF LIVING ||
|
|
|
|
|
Hi shivditya,
I have a question I think you can help me I want to learning programming for IE(Toolbar) and I searching on the codeproject and find lot of articles about it,but I have a problem with all of them I cant compile their when I want to compling each of them I am getting many errors
that I didnt understand do you know an article that I can learn and it compile without error for example I get this error on the an article
error C2787: 'IInputObject' : no GUID has been associated with this object
Thank you
|
|
|
|
|
.NET comes up with predefined macros like __FUNCTION__ which can be handy while retrieving the function signatures in a program. Is there a way to get the same functionality in lower versions of VC++?
|
|
|
|
|
Copy and paste the macro definitions from .NET to your older project?
|
|
|
|
|
__FUNCTION__ is a special #define created for you by the compiler. Unless the compiler provides it, there's no way for you to code it, unless you do the following at the start of each function:
void API::Function1()
#undef __FUNCTION__
#define __FUNCTION__ API::Function1
{
}
void API::Function2()
#undef __FUNCTION__
#define __FUNCTION__ API::Function2
{
}
void API::Function3()
#undef __FUNCTION__
#define __FUNCTION__ API::Function3
{
} which would get really, really old, really, really fast.
Software Zen: delete this;
|
|
|
|