関数でLPCSTR型を返すには?

解決


あんこう  2011-02-07 16:41:30  No: 72325  IP: [192.*.*.*]

DrawTextを使って(×)+(数値)を表示するために、
LPCSTR型で返す関数を作ったのですが、なぜか正常に動きません。
内部で操作しやすいstd::stringに一度書き込んでからreturnする時に、
.c_str()を使ったのですが、4,5,6のいずれも-・としか表示されません。
今は、std::string型で返して、それを.c_strで変換することで
表示していますが、LPCSTR型で返して表示することはできませんか?

編集 削除
maru  2011-02-07 16:46:26  No: 72326  IP: [192.*.*.*]

> 内部で操作しやすいstd::stringに一度書き込んでから
そのstringがローカル変数だったりして。
LPCSTRはポインタなので、その実体(この場合文字列)が関数から抜けても有効な状態になっている必要があります。

編集 削除
あんこう  2011-02-07 18:39:25  No: 72327  IP: [192.*.*.*]

確かに、ローカル変数です。
グローバル変数にする気はないので、このままにします。
ありがとうございました。

編集 削除