問題タブ [stdstring]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - char配列の代わりにstd::stringsを使用したWinAPIファイルの入出力?
パフォーマンス上の理由から、fstream を 1 回だけ使用したくはありませんでした。単純な char 配列の代わりにstd::stringで WinAPI 関数を使用するのは非常に悪い考えのようです。全体として、次のスニペットが機能しない理由 (空の stBuffer が空のままである) と、それを修正するために必要なことを教えてください。
前もって感謝します!
c++ - C++ 文字列から文字を削除する
現在、C++ でテキスト フィールドから文字を削除する実装を試みています。ユーザーが Backspace キーを押すと、次のコードが実行されます。現在カーソルはありません。最後の文字を削除するだけです...
これは最初は問題なく動作しますが、もう一度 Backspace を押しても何も削除されません。
を印刷したmText.length()
ところ、長さが変わらないことがわかりました。文字列を試してみましたが、正常に動作しますが、最初にバックスペースを押すと2文字resize()
が削除されます。
誰かがこの動作を説明し、問題の解決を手伝ってくれることを願っています. 私はメモリ割り当てについてあまり知らないので、しばらくお待ちください;)
ありがとうござい
ます
c++ - 地図このマップにデータを挿入する方法は?
文字列をキー値形式で保存する必要があります。だから、以下のようなマップを使用しています。
挿入行で以下のエラーが発生しています
エラーC2784:'bool std :: operator <(const std :: _ Tree <_Traits>&、const std :: _ Tree <_Traits>&)':'const std :: _ Tree <_Traits>&'のテンプレート引数を推測できませんでした'const std::string'から
以下のようにmake_pair関数も試しましたが、それでも同じエラーが報告されます。
plsは私に何が間違っているのか、そして上記の問題の解決策は何であるのかを教えてくれます。上記の問題を解決した後、以下のようにキーに基づいて値を取得できますか
c++ - std::strings の std::list を簡単に初期化しますか?
C++0x では、次のようになります。
標準の非0x C++で最も簡単な方法は何ですか?
c++ - 条件演算子による「無効な変換」エラー
この行でコンパイルエラーが発生します:
エラー:
MenuItemsは、次のクラスのstd::vectorです。
mn_yesとmn_noはstd::stringsです。
コンパイラはMinGW(code ::blocksで配布されるバージョン)です。
c++ - lua に渡される std::string を含む構造体
私は swig を使用して構造体を作成し、それを (基本的に参照によって) lua に渡し、C++ 関数に戻った後も lua コードで行われた変更が残るように構造体を操作できるようにする C++ コードを使用しています。次に示すように、構造体に std::string を追加するまで、これはすべて正常に機能します。
std::string は明らかに const 参照として渡されているため、変更できません。lua 関数でこの文字列に値を割り当てようとすると、次のエラーが発生します。
str のエラー (引数 2)、予期された 'std::string const &' が 'string' を取得しました
この問題に対処する適切な方法は何ですか? z
のような通常の構文を使用するのではなく、設定するカスタム C++ 関数を作成する必要がありますobj.z = "hi"
か? swig を使用してこの割り当てを許可する方法はありますか?
C++ コードは
c++ - std::string変数を関数に渡す方法
1つの変数を受け取るC++メソッドがあり、メソッドのシグネチャは次のようになります。
私は渡してみました:
しかし、次のエラーが発生します。
ここにいくつか質問があります。
std::string
なしで通常通りに渡すにはどうすればよいですか&
- これは値がオプションのように見えます
folder = ""
か?もしそうなら、どのようにオプションのパラメータを渡しますか?
c++ - このコードで string::npos はどういう意味ですか?
std::string::npos
次のコード スニペットのフレーズは何を意味していますか?
c++ - 末尾または先頭に '\0' を付けて std::string を LPCSTR に変換します
'\0' 文字を保持しながら std::string を LPCSTR に変換するにはどうすればよいですか?
フィルターに区切り文字として '\0' を含める必要がある OPENFILENAME.lpstrFilter で結果を使用したいと考えています。
std::string.c_str() は '\0' を削除してトリムするようです
前もって感謝します!
==========================
(フォーラムの返信投稿のように、応答にコメントを適切に追加するにはどうすればよいですか?)
あなたのコメントを読んだ後、私はこのスニペットを再確認しました:
c_str() または LPCSTR の仕組みを間違えていますか?
virtual-functions - std::string を返す仮想関数の「add esp,4」はありません
私は DynObj を見ていて、vftablesで自分の実験を行うことにしました。私は Visual Studio 2010 で作業しており、std::string を返す仮想関数を使用してオブジェクトをインスタンス化するコンソール メインを作成しました。
main のテスト コードは、オブジェクトの vftable から取得したポインターを使用して、オブジェクトのパブリック仮想関数を呼び出そうとします。プリミティブ型を返す関数には問題がないことがわかりました。ただし、関数が std::string を返すと、コンパイラは有効なスタック ポップを挿入します (esp,4 を追加します)。これにより、後続のスタック チェック コードで例外がスローされます。
これは、グローバル空間で宣言された関数の標準であることに気付きました。しかし、クラス内の関数は ESP 修飾子のポスト コールを生成しません。
アセンブリと一緒にコードの本質は次のとおりです...
キャストされたポインターを介した仮想関数への最後の呼び出しの結果は次のようになります。
実行時チェックの失敗 #0 - ESP の値が関数呼び出しで適切に保存されませんでした。これは通常、ある呼び出し規約で宣言された関数を、別の呼び出し規約で宣言された関数ポインターで呼び出した結果です。
だから私の質問は次のとおりです。非プリミティブ型を返す仮想関数で適切な呼び出し規約を呼び出すにはどうすればよいですか?
ところで、00BE178B で中断し、次のステートメントを 00BE178E に設定すると、実行は問題なく完了します。