error C2664 in MFC..?
-
ifstream message_file; TCHAR message[1000]; int i; message_file.get(message[i++]);
ERROR C2664 : cannot convert parameter 1 from 'TCHAR' to 'char&' Any suggestions for the above problem -
ifstream message_file; TCHAR message[1000]; int i; message_file.get(message[i++]);
ERROR C2664 : cannot convert parameter 1 from 'TCHAR' to 'char&' Any suggestions for the above problemHi, use wifstream in place of ifstream, it seems your project is unicode defined. you may use
#ifdef _UNICODE
wifstream message_file;
#else
ifstream message_file;
#endifBest Regards Raj
-
ifstream message_file; TCHAR message[1000]; int i; message_file.get(message[i++]);
ERROR C2664 : cannot convert parameter 1 from 'TCHAR' to 'char&' Any suggestions for the above problemWhy are you mixing Generic-Text Mappings with a class specialized for elements of type char?
Software_Specialist wrote:
TCHAR message[1000];
Try to change the above with:
char message[1000];
:)
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.
-
Why are you mixing Generic-Text Mappings with a class specialized for elements of type char?
Software_Specialist wrote:
TCHAR message[1000];
Try to change the above with:
char message[1000];
:)
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.
well i am well confused now. okay pls have a look over this post of mine where i discussed mainly about char variable... http://www.codeproject.com/script/comments/forums.asp?forumid=1647&select=2073148&df=100&fr=26 Now all of them said me to use TCHAR in place of char or wchar_t.. I have not defined UNICODE...All of them said that TCHAR can handle both UNICODE nad non UNICODE ...So its always better to use TCHAR. Now i am finished changing every related char to TCHAR and left with 1 error which i asked ... Well yeh i am rewriting mfc VC++ code to VS2005(MFC)...so am facing promlems...m new to MFC... Now if ill change message back to char ill again get many errors so that means i have to change everything again....and would end up in never ending error loop.... Any other way out...? Thanks
-
well i am well confused now. okay pls have a look over this post of mine where i discussed mainly about char variable... http://www.codeproject.com/script/comments/forums.asp?forumid=1647&select=2073148&df=100&fr=26 Now all of them said me to use TCHAR in place of char or wchar_t.. I have not defined UNICODE...All of them said that TCHAR can handle both UNICODE nad non UNICODE ...So its always better to use TCHAR. Now i am finished changing every related char to TCHAR and left with 1 error which i asked ... Well yeh i am rewriting mfc VC++ code to VS2005(MFC)...so am facing promlems...m new to MFC... Now if ill change message back to char ill again get many errors so that means i have to change everything again....and would end up in never ending error loop.... Any other way out...? Thanks
Hi, Yes, It's nice choice of using generic text mapping function. So that you can compile both in unicode and non unicode version. Well C++ stream class has both version, whar_t version of "ifstream" is "wifstream", "cin" is "wcin", ... but i don't know the generic mapping for these class. map these classes yourself for unicode and other version. Best Regards Raj
-
well i am well confused now. okay pls have a look over this post of mine where i discussed mainly about char variable... http://www.codeproject.com/script/comments/forums.asp?forumid=1647&select=2073148&df=100&fr=26 Now all of them said me to use TCHAR in place of char or wchar_t.. I have not defined UNICODE...All of them said that TCHAR can handle both UNICODE nad non UNICODE ...So its always better to use TCHAR. Now i am finished changing every related char to TCHAR and left with 1 error which i asked ... Well yeh i am rewriting mfc VC++ code to VS2005(MFC)...so am facing promlems...m new to MFC... Now if ill change message back to char ill again get many errors so that means i have to change everything again....and would end up in never ending error loop.... Any other way out...? Thanks
Software_Specialist wrote:
Now all of them said me to use TCHAR in place of char or wchar_t.. I have not defined UNICODE...All of them said that TCHAR can handle both UNICODE nad non UNICODE ...So its always better to use TCHAR.
Well, they're right: actually TCHAR works both for UNICODE and not-UNICODE builds. The same is not true for
ifstream
that is a class specialized for handlingchar
buffers. YOu can either follow my suggestion or accept the more elegant solution of Rajkumar_R [^]. :-DIf 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.
-
well i am well confused now. okay pls have a look over this post of mine where i discussed mainly about char variable... http://www.codeproject.com/script/comments/forums.asp?forumid=1647&select=2073148&df=100&fr=26 Now all of them said me to use TCHAR in place of char or wchar_t.. I have not defined UNICODE...All of them said that TCHAR can handle both UNICODE nad non UNICODE ...So its always better to use TCHAR. Now i am finished changing every related char to TCHAR and left with 1 error which i asked ... Well yeh i am rewriting mfc VC++ code to VS2005(MFC)...so am facing promlems...m new to MFC... Now if ill change message back to char ill again get many errors so that means i have to change everything again....and would end up in never ending error loop.... Any other way out...? Thanks
Software_Specialist wrote:
I have not defined UNICODE...
This is the default for VS2005. Change
ifstream
towifstream
as has been mentioned.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
-
Software_Specialist wrote:
I have not defined UNICODE...
This is the default for VS2005. Change
ifstream
towifstream
as has been mentioned.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
wifstream giving me linking errors....may be i need to change all the ifstream to wifstream....n ofstream to wofstream... trying to figure this out....
-
wifstream giving me linking errors....may be i need to change all the ifstream to wifstream....n ofstream to wofstream... trying to figure this out....
Software_Specialist wrote:
wifstream giving me linking errors...
And those would be?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
-
Software_Specialist wrote:
wifstream giving me linking errors...
And those would be?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
ok am getting 4 errors now... Error 27 error LNK2019: unresolved external symbol "public: void __thiscall hide_in_text::hide_file(class CProgressCtrl *)" (?hide_file@hide_in_text@@QAEXPAVCProgressCtrl@@@Z) referenced in function "public: void __thiscall CABCDlg::OnHide(void)" (?OnHide@CABCDlg@@QAEXXZ) ABCDlg.obj Error 28 error LNK2019: unresolved external symbol "public: void __thiscall secret_file_class::get_secret_file(void)" (?get_secret_file@secret_file_class@@QAEXXZ) referenced in function "public: void __thiscall CABCDlg::OnHide(void)" (?OnHide@CABCDlg@@QAEXXZ) ABCDlg.obj Error 29 error LNK2019: unresolved external symbol "public: void __thiscall message_class::convert_to_bits(void)" (?convert_to_bits@message_class@@QAEXXZ) referenced in function "public: void __thiscall CABCDlg::OnHide(void)" (?OnHide@CABCDlg@@QAEXXZ) ABCDlg.obj Error 30 fatal error LNK1120: 3 unresolved externals N:\ABC\Debug\ABC.exe
-
ok am getting 4 errors now... Error 27 error LNK2019: unresolved external symbol "public: void __thiscall hide_in_text::hide_file(class CProgressCtrl *)" (?hide_file@hide_in_text@@QAEXPAVCProgressCtrl@@@Z) referenced in function "public: void __thiscall CABCDlg::OnHide(void)" (?OnHide@CABCDlg@@QAEXXZ) ABCDlg.obj Error 28 error LNK2019: unresolved external symbol "public: void __thiscall secret_file_class::get_secret_file(void)" (?get_secret_file@secret_file_class@@QAEXXZ) referenced in function "public: void __thiscall CABCDlg::OnHide(void)" (?OnHide@CABCDlg@@QAEXXZ) ABCDlg.obj Error 29 error LNK2019: unresolved external symbol "public: void __thiscall message_class::convert_to_bits(void)" (?convert_to_bits@message_class@@QAEXXZ) referenced in function "public: void __thiscall CABCDlg::OnHide(void)" (?OnHide@CABCDlg@@QAEXXZ) ABCDlg.obj Error 30 fatal error LNK1120: 3 unresolved externals N:\ABC\Debug\ABC.exe
Simply changing
ifstream
towifstream
caused these linker errors? :confused:
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
-
Simply changing
ifstream
towifstream
caused these linker errors? :confused:
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
YEH thats true... Do you think it could be cos i am using TCHAR now. Whereas i guess wifstream supports wchar_t... Is there any class for TCHAR types...i dont think so..????
-
YEH thats true... Do you think it could be cos i am using TCHAR now. Whereas i guess wifstream supports wchar_t... Is there any class for TCHAR types...i dont think so..????
Software_Specialist wrote:
Do you think it could be cos i am using TCHAR now.
No, because the preprocessor has resolved those to
wchar_t
.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
-
Software_Specialist wrote:
Do you think it could be cos i am using TCHAR now.
No, because the preprocessor has resolved those to
wchar_t
.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
okay These were my main problems cos of which i first used wchar_t and now TCHAR... char str[10]; CString Password; strcpy(str, Password); In above code i get error saying can not convert parameter 2 from 'CString to const char*' TCHAR strFilter[1000]; _tcscpy_s(strFilter, "All Files (*.*)|*.*||"); And error i got is none of the 2 overloads could convert all the arguments type. If i get some other way to deal with this situation... I mean without using wchar_t or TCHAR or L or _T or wcscpy or _tcscpy_s etc etc...then it might work...Dont know really..lez c ..m playing around with it at the moment... Thanks
-
okay These were my main problems cos of which i first used wchar_t and now TCHAR... char str[10]; CString Password; strcpy(str, Password); In above code i get error saying can not convert parameter 2 from 'CString to const char*' TCHAR strFilter[1000]; _tcscpy_s(strFilter, "All Files (*.*)|*.*||"); And error i got is none of the 2 overloads could convert all the arguments type. If i get some other way to deal with this situation... I mean without using wchar_t or TCHAR or L or _T or wcscpy or _tcscpy_s etc etc...then it might work...Dont know really..lez c ..m playing around with it at the moment... Thanks
Software_Specialist wrote:
_tcscpy_s(strFilter, "All Files (*.*)|*.*||");
Doesn't this require three arguments? The string literal needs to use
_T()
orL
. In any case, do you really need to usewchar_t
variables?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
-
okay These were my main problems cos of which i first used wchar_t and now TCHAR... char str[10]; CString Password; strcpy(str, Password); In above code i get error saying can not convert parameter 2 from 'CString to const char*' TCHAR strFilter[1000]; _tcscpy_s(strFilter, "All Files (*.*)|*.*||"); And error i got is none of the 2 overloads could convert all the arguments type. If i get some other way to deal with this situation... I mean without using wchar_t or TCHAR or L or _T or wcscpy or _tcscpy_s etc etc...then it might work...Dont know really..lez c ..m playing around with it at the moment... Thanks
i guess i got some cause due to which its giving me these error...ill make those changes n will see if it works or not... i would post wtever i get in a bit...
-
ok am getting 4 errors now... Error 27 error LNK2019: unresolved external symbol "public: void __thiscall hide_in_text::hide_file(class CProgressCtrl *)" (?hide_file@hide_in_text@@QAEXPAVCProgressCtrl@@@Z) referenced in function "public: void __thiscall CABCDlg::OnHide(void)" (?OnHide@CABCDlg@@QAEXXZ) ABCDlg.obj Error 28 error LNK2019: unresolved external symbol "public: void __thiscall secret_file_class::get_secret_file(void)" (?get_secret_file@secret_file_class@@QAEXXZ) referenced in function "public: void __thiscall CABCDlg::OnHide(void)" (?OnHide@CABCDlg@@QAEXXZ) ABCDlg.obj Error 29 error LNK2019: unresolved external symbol "public: void __thiscall message_class::convert_to_bits(void)" (?convert_to_bits@message_class@@QAEXXZ) referenced in function "public: void __thiscall CABCDlg::OnHide(void)" (?OnHide@CABCDlg@@QAEXXZ) ABCDlg.obj Error 30 fatal error LNK1120: 3 unresolved externals N:\ABC\Debug\ABC.exe
Hi, These errors or not due to TCHAR or wifstream. Have you included the file with the definition for hide_in_text::hide_file, secret_file_class::get_secret_file, ... I think the definition for these are missing. Best Regards Raj
-
Software_Specialist wrote:
_tcscpy_s(strFilter, "All Files (*.*)|*.*||");
Doesn't this require three arguments? The string literal needs to use
_T()
orL
. In any case, do you really need to usewchar_t
variables?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
# Doesn't this require three arguments? No it was working ...So i guess its right...anyway i think i hv some problem in one of my function so ill try to modify it a bit....
-
# Doesn't this require three arguments? No it was working ...So i guess its right...anyway i think i hv some problem in one of my function so ill try to modify it a bit....
Software_Specialist wrote:
No it was working ...So i guess its right
So what of your "And error i got is none of the 2 overloads could convert all the arguments type." comment? That does not sound like it is working, or right, to me.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
-
Hi, These errors or not due to TCHAR or wifstream. Have you included the file with the definition for hide_in_text::hide_file, secret_file_class::get_secret_file, ... I think the definition for these are missing. Best Regards Raj
Yeh you are right...thats what i am doing now.. declaration was missing...by mistake it got deleted... I am rewriting those 2 functions now.....ill update whatever i get by the end... Thanks a lot for all your help...