![]() |
| ||
| Problems casting a const char* to char* I am currently writing a C++ program that uses a external library and engine that is primarily based in C. I am attempting to load an image file and the function requires that the argument be passed as a char *szFileName. I have the file address as a string and my attempt to convert is as follows: std::string path("C:\\Doc.....") then char *FileExt = path.c_str(); I continually get the error message saying that it is not possible to convert const char * to char *! Any1 any ideas? Any help would be much appreciated! oh and by the way ive tried casting it using static_cast |
| ||
| Re: Problems casting a const char* to char* The c_str() method of the std::string class returns a pointer to const char so that you can't modify the result. Unfortunately, there's no good solution, and you can thank the author of the library who didn't write const-correct code. Now, if you know that the function will not modify the string, you can use const_cast to allow the conversion: char *FileExt = const_cast<char*> ( path.c_str() );If you're not sure whether the function will modify the string or not, you have no choice but to create a C-style string copy: char *FileExt = new char[path.size() + 1];strcpy is declared in <cstring>. >oh and by the way ive tried casting it using static_cast static_cast doesn't remove qualifiers, which is a very good thing because you have to actively choose const_cast, and therefore can't do it by accident. |
| ||
| Re: Problems casting a const char* to char* Thanks very much that seems do have done the trick! Won't know for sure though until i'm back in tomorrow! ;) Cheers though It's a great help cause that was the sticking point. |
| All times are GMT -4. The time now is 8:46 am. |
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC