Editは、テキストボックスです。
Editには、"12345"の半角文字列が入っています。
これを、C言語の文字列として取得しようとしました。
このときのソースコードは、次の通り。
--------
char *ptr1 = new char[Edit->Text.Length()+1]; //独自領域にセーブ
strcpy(ptr1, Edit->Text.c_str()); //ptr1にアドレスをコピー
--------
このstrcpyの行で、エラーが出てしまい、対処に困っています。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
E2034 'wchar_t *' 型は 'const char *' 型に変換できない
E2342 パラメータ '__src' は const char * 型として定義されているので wchar_t * は渡せない
--------
Edit->Textで取得した文字列を、"12345\0"といった具合で処理をしたいのですが、どのようにしたらいいのでしょうか?
追記
「C++Builder 2009」以前のバージョンでは、難なく取得できていた。
同じソースコードなのに、何故かエラーになる。
No.2ベストアンサー
- 回答日時:
> 処で、こういった変換が幾つもあって、処理に困っています。
> 参考になりそうなWebページがあれば、教えていただけないでしょうか?
Delphiのサイトが中心になりますが、
Delphi 2009 特集のUnicode関係の話
http://totonica.s41.xrea.com/doc/delphi_tiburon/
同サイトのリンク集
http://totonica.s41.xrea.com/doc/delphi_tiburon/ …
が、大変よくまとまっています。
あと、質問はEmbarcadero Discussion Forumsですると、返事がもらえる確率が高いと思います。
https://forums.codegear.com/category.jspa?catego …
No.1
- 回答日時:
C++Builder2009では、文字列型がAnsiStringからUnicodeStringに変わりました。
UnicodeString::c_str()は、wchar_t*を返します。
次のように変更すれば動きます。
wchar_t* ptr1 = new wchar_t[Edit->Text.Length()+1];
wcscpy(ptr1, Edit->Text.c_str());
ありがとうございます!
無事に、エラーを取り除けました。
処で、こういった変換が幾つもあって、処理に困っています。
参考になりそうなWebページがあれば、教えていただけないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# 【C言語】全角文字の配列を、全角のまま1文字ずつ出力する方法 4 2023/05/09 15:08
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語にて構造体のメンバがNULL...
-
char*を初期化したいのですが
-
コマンドライン引数 *argv[]は...
-
C言語のintとcharの違いってな...
-
char 文字列型 の表現範囲が-12...
-
CStringからchar*への型変換に...
-
小数点入りの文字列をfloat型に...
-
エクセルのMID関数は、C言語では?
-
ポインタを使用 [数字列を数値...
-
C言語:小文字を大文字に変換す...
-
文字列のswap
-
WritePrivateProfileString
-
csvファイルをfscanfで読み込む...
-
WM_CHAR or WM_KEYDOWN の「wPa...
-
char AA[]{"全角文字"};から"全...
-
fstream型オブジェクトを関数の...
-
文字列str内の全ての数字を...
-
const char* s1とただのchar s1...
-
C言語で文字列をかえす正しい書...
-
動的メモリの初期化方法について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
char*を初期化したいのですが
-
C言語のintとcharの違いってな...
-
CStringからchar*への型変換に...
-
C言語にて構造体のメンバがNULL...
-
小数点入りの文字列をfloat型に...
-
C言語のプログラムについてです
-
strcat関数を自作したいです
-
fstream型オブジェクトを関数の...
-
new charとnew char[N]の違いは?
-
DWORDとcharの変換
-
文字列の途中から途中までを抽出
-
char 文字列型 の表現範囲が-12...
-
const char* s1とただのchar s1...
-
wsprintf( ポインタ , "%d" , "...
-
c言語でポインタ変数を用いた配...
-
char型にint型の数値を代入する。
-
C言語で文字列をかえす正しい書...
-
C++17で、unsigned char * 配列...
-
共用体について
-
エクセルのMID関数は、C言語では?
おすすめ情報