I持って次のC++コード:LPSTR LPCTSTR説明
#include "stdafx.h"
#include <atlstr.h>
int _tmain(int argc, _TCHAR* argv[])
{
CString OFST_PATH;
TCHAR DIR_PATH[MAX_PATH];
GetCurrentDirectory(MAX_PATH, DIR_PATH);
OFST_PATH.Format(DIR_PATH);
CHAR *pOFST_PATH = (LPSTR)(LPCTSTR)OFST_PATH;
return 0;
}
私はプログラムの最後でpOFST_PATH
の値が "C" である理由を理解したいですか?変数OFST_PATH
のキャスト(LPSTR)(LPCTSTR)
は、そこに書かれた全体の経路に何をしましたか?次のウィンドウで見ることができるように変数をデバッグの際
は、値は次のとおりです。
LPCSTRやCstringなどのこれらのマイクロソフト固有の突然変異のすべてで自分の心を汚染するのを避けることで自分自身を賞賛します。代わりに 'char *'や 'std :: string'のようなC++の標準型に従ってください。 –
私はあなたに完全に同意しますが、私はそれらを使用するように制限されています:/ – Raz
それは残念です。過去に受け入れられない職場環境に直面して、私は仕事を変えることで問題を解決しました。この種のコードは私の目を傷つけ、長期的な脳の損傷を恐れる。 –