Visual Studio 2010 MFCを使用してC++プログラムをビルドしています。私のプログラムは、プロジェクトの一部ではなく、char *を受け付けるDLLを呼び出します。私はLPCTSTRの形式で文字列を取得する関数を持っています。私は約2時間はGoogle上でされており、解決策は見つかりませんでした。フォームをMFC LPCTSTRからchar *に変換するにはどうすればいいですか?私が見つけたものは、うまく動作しないか、コンパイルされません。 MFCでC++ LPCTSTR to char *
答えて
最も簡単には(結果のバッファが読み取り専用引数であろうことを条件とする)CStringA
介して変換することである。
LPCTSTR pszA = ...
CStringA sB(pszA);
const char* pszC = sB;
char* pszD = const_cast<char*>(pszC);
他のオプションが利用可能であり、議論された:
- c++ convert from LPCTSTR to const char *
- How to convert from LPCTSTR to LPSTR?
WideCharToMultiByte
T2A
マクロなど
LPCTSTR
がconst wchar_t *
またはプロジェクトがプリプロセッサシンボルにUNICODE
を定義したかどうかに応じてconst char *
のように定義されるか(または_UNICODE
、私は1つのMFCが使用することを忘れ)。
したがって、問題の解決方法は、UNICODE設定を使用しているかどうかによって異なります。
使用している場合は、文字列を文字列に変換する必要があります。これを行うにはCStringA
を使用してください。
UNICODEを使用していない場合は、変更可能なコピーを作成し、文字列を変更したい場合に備えてDLLに渡す必要があります。これを行うには、CString
を使用してコピーを作成します。
どちらの場合でも、CString
オブジェクトにコピーを作成した後は、GetBuffer
メソッドを使用して文字列への変更可能なポインタを取得し、DLL関数を呼び出して、呼び出し後にReleaseBuffer
を呼び出します。
CStringを避けて使用しないでください。コピーを作成するには 'std :: string'を使います。 – Puppy
@DeadMG回避できる場合は、MFCを使用しないでください。そして 'std :: string'から' char * 'をどうやって得るのですか? MFCの世界でプレイするときにMFCクラスを使用することには何も問題ありません。 – Praetorian
- 1. C++ CLI System.String^to MFC LPCTSTR
- 2. std :: string to LPCTSTR
- 3. C++ int to char
- 4. (C++)2DベクトルChar to Int
- 5. アドレスTo Const Char *?
- 6. char * to std :: string
- 7. const char * to TDesC16
- 8. char * ptr to struct
- 9. LPSTR LPCTSTR説明
- 10. Signed Char to Int
- 11. キャストvoid * to char *
- 12. CStringT to char []
- 13. KeyEventArgs.Key to char
- 14. int to string、char * itoa
- 15. UIimage to char *変換
- 16. ギリシャ文字でNSString to char *
- 17. LPCWSTR to char *とその逆
- 18. const unsigned char * to std :: string
- 19. 16進数NSString to char []
- 20. char * to NSDataの問題
- 21. Arduino unsigned long int to char *
- 22. C++:キャストint to charが正しい値を出力しない
- 23. DWORDとLPCTSTRの連結
- 24. int to unsigned char *およびその逆
- 25. C strncpy 2 char
- 26. charスワップファイルC++
- 27. C++ SaveFileDiologの情報をLPCTSTRに変換する方法
- 28. char * [C++]
- 29. Cのchar型
- 30. C++ map :: find char * vs. char []
プロジェクトでunicodeを使用していますか? – Torsten