|
humm global variable should be automatic advice for beginners
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/xml>
|
|
|
|
|
I want to learn visual C++ and I read some chapters of Visual C++ In 21 Days by I didn't enjoy it .
please give me a hand with this !!
tnx
|
|
|
|
|
razi_Seyyedi wrote: ...I read some chapters of Visual C++ In 21 Days by I didn't enjoy it .
please give me a hand with this !!
You need a hand reading?
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
no, I mean give me some advices for learning Visual C++.
|
|
|
|
|
Start small, and work your way into larger problems. There are so many fundamental things you can do with a simple dialog. Reading books and Web sites are fine, but it sounds as though you just need to jump in and get your hands dirty using the IDE and compiler.
How about something easy like:
/---------------------------\
| My Temperature Program |
+---------------------------+
| Fahrenheit: _____ |
| Celsius: _____ |
| |
| /---------\ /--------\ |
| | Compute | | Cancel | |
| \---------/ \--------/ |
\---------------------------/
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
I really enjoyed your answer . could you please give me some problems or some thing that you recommend for beginning . I know C++ but I'm not good at Visual C++.
tnx
|
|
|
|
|
razi_Seyyedi wrote: could you please give me some problems...
Other than the one I already provided?
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
yes man !!
|
|
|
|
|
See here, and here.
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
Is it just programming for windows using Visual C++ you want to learn, or do you need to learn C++ as well?
You know it's hard to recommend something since you've read one of the most basic books out there and you "didn't enjoy it" (whatever that means).
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
I have an TCHAR array,
my buf:
TCHAR szBuf[MAX_PATH] = _T("buf");
a function;
void DealFunc(char *pStr);
I wanna use DealFunc, help me how to use it!
Hope I make the question clear!
|
|
|
|
|
like this;
DealFunc( szBuf );
Love
|
|
|
|
|
But if compiled with _UNICODE, it would not pass.
Is it the only way to do like this?
char szBuf1[MAX_PATH * 2];
#if defined(_UNICODE) || defined(UNICODE)
WideCharToMultiByte(CP_ACP, 0, szBuf, -1, szBuf1, MAX_PATH * 2);
#else
sprintf(szBuf1, szBuf);
#endif
DealFunc( szBuf1 );
|
|
|
|
|
yes, I think this is the only way.
char szBuf1[MAX_PATH * 2];
#if defined(_UNICODE) || defined(UNICODE)
WideCharToMultiByte(CP_ACP, 0, szBuf, -1, szBuf1, MAX_PATH * 2);
#else
strcpy(szBuf1, szBuf);
#endif
DealFunc( szBuf1 );
Olympic Beijing 2008
|
|
|
|
|
|
First of all, I recommend you to read this article - http://www.codeproject.com/KB/string/cppstringguide1.aspx[^]
fantasy1215 wrote:
I wanna use DealFunc, help me how to use it!
Hope I make the question clear!
1) If UNICODE is not defined in your project, the TCHAR will expand to char and you can directly call DealFunc() since it expects char* .
2) Well, If your project have UNICODE defined, then your TCHAR will expand to wchar_t and in that case you cannot call DealFunc() because it signature is to accept char* .
Solutions
1) Change your function signature to TCHAR.
void DealFunc(char *pStr);
2) Change your buffer to char
char szBuf[MAX_PATH] = "buf";
3) If you don't want to change either of these, convert your unicode string to ansi and call your DealFunc() . Check this link - http://weseetips.com/2008/05/07/how-to-convert-unicode-to-ascii-and-vice-versa-more-easily/[^]
Did i explained too much details?
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
Thanks for your all enthusiastic. I really appreciate.
people like you all make the world warm!
|
|
|
|
|
Thanks a lot for your kind words.
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
#include <atlconv.h>
TCHAR szBuf[MAX_PATH] = _T("buf");
USES_CONVERSION;
DealFunc( T2A( szBuf ));
T2A/W2A converts from unicode to ansi and T2W/A2W converts from ansi to unicode.
Nibu babu thomas
Microsoft MVP for VC++
Code must be written to be read, not by the compiler, but by another human being.
Programming Blog: http://nibuthomas.wordpress.com
modified on Friday, August 15, 2008 2:25 AM
|
|
|
|
|
You would really recommend him to do something like that? I thought one must either stick to generic text mappings, or NOT. But that's my opinion.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
Rajesh R Subramanian wrote: You would really recommend him to do something like that?
Reason being that it might be a external library API which he cannot modify and just in case if he can modify the prototype of this function then the parameter should be changed to TCHAR form.
Nibu babu thomas
Microsoft MVP for VC++
Code must be written to be read, not by the compiler, but by another human being.
Programming Blog: http://nibuthomas.wordpress.com
|
|
|
|
|
Nibu babu thomas wrote: just in case if he can modify the prototype of this function then the parameter should be changed to TCHAR form.
Exactly!
But I agree, it has happened to me more than once that I have to write sub standard code, only because then it would work with some existing component or framework, whose source is closed to me. I hate it.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
The right way is to make your DealFunc(TCHAR *pStr);
so you are independent to what TCHAR expands. Everything else is a bad barter.
Believe me: I am actually changing a lot of my code because I need it to be Unicode compatible.
Greetings from Germany
|
|
|
|
|
If you are using Generic-Text Mappings, learn all the conventions and stick to the rules. Don't mix and match TCHAR with char.
Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche
.·´¯`·->Rajesh<-·´¯`·.
[Microsoft MVP - Visual C++]
|
|
|
|
|
DealFunc is thirdparty code, can't modify it!
So I ask the wired question!
|
|
|
|