それを* charに代入しようとすると、「エラー: 'const char *'から 'char'への無効な変換」というエラーメッセージが表示されます。私はコード全体を入れますが、それは非常に長く未完成ですが。これについての助けに感謝します。 wasawasa さんが書きました:文字列リテラルの内容をchar型変数に格納する記述は他の場所でも用いており、そちらでは特にエラーは発生していないのでこれ自体が原因とは思えません。 処理系依存ですが、(signed)intは符号あり整数型4バイト、unsigned intも符号なし整数型4バイト。 同じデータ型、同じ4バイトでも表現できる数値が異なるため、unsignedで修飾した変数に負数を格納できるsigned変数を代入した場合、予期せぬ動作となるため、気を付けないといけません。 いいえ、ただしchar* dest = new char[str.length() + 1]; std::copy(str.begin(), str.end(), dest)より慣用的なC ++になります。strcpy()そして、malloc()間違っているかは問題ではありませんが、コードの同じブロックにC ++同等とC ++の文字列とCライブラリの機能を使用するために一貫性のないようです。 このため、pin_ptr を使ってガベレージコレクタから移動されない固定されたポインタを取得して、これをネイティブ関数に渡す必要がある。 void nativeMethod(const unsigned char* … 問題点. char が符号無しと定義されている場合に、unsigned char[] から const char * へ変換したとき これらの警告が出ないようにするにはキャストする必要があるが、キャストが多すぎるとコードが読みにくくなり、出るべき警告メッセージが隠れてしまうことがある。 ただしchar型に変換する場合は、文字に割り当てられた文字コードが0以上の値ですので、値の範囲が0から255までの数値をunsigned char型に変換するようにしましょう。 範囲外の数値をunsigned char型にキャストすると意図しない値となるので、ご注意ください。

mbstowcs; 書式: int mbstowcs( wchar_t *ws, const char *ms, size_t n ): 機能: マルチバイト文字列からワイド文字列に変換: 引数: wchar_t *ws : 変換したワイド文字列を格納するポインタ const char *ms : 変換元のマルチバイト文字列 size_t n : ワイド文字の文字数を指定: 戻り値: 成功すると、変換したワイド文字 … C++ UnicodeStringでchar*変換とか検索とかfloat変換とか ... More than 3 years have passed since last update.