問題タブ [lpcwstr]
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++ - std::string からの c++ RegCreateKeyEx LPCWSTR
レジストリにいくつかの操作を書いていますが、これで 2 日間行き詰まりました。それを解決する方法が本当にわかりません。だから、その私のコード:
RegCreateKeyEx には LPCWSTR 引数が必要ですが、std::string からそれを行う方法が本当にわかりません。これを修正するのを手伝ってもらえますか? :) ありがとうございました!
c++ - 2 つの LPCWSTR 変数の追加
次のように2つのLPCWSTR変数を追加しようとしています
私は千の異なる方法を試しましたが、私の最新のものはこれでした
戻り値にブレーク ポイントを設定すると、値は問題ないように見えます。return = Source/Shaders/shader.fx は期待どおりです。しかし、F10 キーを押してオブジェクトに戻ると、ShaderFile 変数は完全にランダムで、アラビア記号のように見えるものの集まりであることがわかりました。
誰かが何をすべきか正しい方向に私を向けることができますか? 私が言ったように、関数は正常に動作しているようですが、F10 キーを押してブレークポイントを介してプロジェクトに戻ると、変数はまったく異なるものに等しくなります。
c++ - PCWSTR を文字列リテラルに正しく指していますか?
私は C++ に少し慣れていないので、文字列ポインターの質問について助けを求めています。
まず、整数を使用したポインターの基本について考えてみましょう。
実行すると、main() は整数を作成し、そのアドレスを SetBob に渡します。SetBob では、(pBob が指すアドレスの) 値は 5 に設定されます。SetBob が戻ると、bob の値は 5 になります。
では、文字列定数について考えてみましょう。
実行すると、main() は空の文字列を指す PCWSTR を作成し、そのアドレスを SetBob に渡します。SetBob では、PCWSTR ポインタが Done 文字列を指すようになりました。SetBob が戻ると、bob の値は "Done" になります。
私の質問は次のとおりです。
- デバッガーでは、SetBob を呼び出した後、bob 文字列が Done に設定されていることがわかります。しかし、なぜこれが機能するのでしょうか。整数の例では、整数にスペースを割り当てたので、そのスペースに値を格納できることは理にかなっています。ただし、文字列の例では、PCWSTR は単なるポインターです。文字列定数もメモリ内にあるという考えはここにあるので、その定数を指しているだけですか?
- "Done" リテラルは SetBob 内にあるため、それを指しているにもかかわらず、"Done" のメモリが再利用される可能性があることを心配する必要はありますか? たとえば、WCHAR バッファーを作成した場合、"Done" をバッファーにコピーするので問題ありません。しかし、私は関数内のリテラルを指しているので、そのリテラルは関数が終了した後のある時点で破棄され、bob が予期せず何も指していない可能性がありますか?
c++ - 部分文字列への C++ ポインター
オフセットと長さが指定されたテキストへのポインターから wstring を取得したいと考えています。
私は次のことを試しました:
しかし、それはまったく奇妙です。結果の wstring は間違った場所で切り落とされ、短すぎます。
LPCWSTR をより深く理解している人が、正しく行う方法を教えてくれませんか?
どうもありがとうございました!
c++ - LPCWSTR が TextOut() メソッドで正しくキャストされない
コードスニペット全体...
問題は、Visual Studio 2012 から、「const char*」型の引数が LPCWSTR 型のパラメーターと互換性がないというエラーが表示されることです。これは、次のコード行で発生します。
変換 ( ) を試みました(LPCWSTR)gTextObjs[i].s.c_str()
が、調査によると、文字配列操作ごとに 1 バイトから 2 への操作であるため、どうやらこれは非常に間違っているようです。"C4018: '<' : signed/unsigned mismatch"
この変更後の警告も受けました。私はC ++を初めて使用し、変換が間違っていることを考えると、このエラーでかなり迷っています。
SO でいくつかの異なるスレッドを確認しましたが、この特定のケースに合わせたものはないようです (または、それらのスレッドと私のスレッドの相関関係がよくわかりません)。:[
また、明確にするために...変換は「機能します」が、奇妙な日本語/中国語の記号が書かれているように印刷され、常に異なります。
c++ - LPCWSTR エラー; より良い解決策はありますか?
私は次の c++ コードを持っていますが、文字列を配置しようとするところはどこでも、「パラメータ 2 を 'const char[x] から LPCWSTR に変換できません」を回避するために変換する必要があるようです。簡単な変換を行うことでこの問題を解決できることはわかっていますが、提供するほぼすべての文字列を変換する必要があることを回避する方法はありますか? 私は c++ を学習している ac# 開発者なので、言語の基本的な概念が欠けていると思います。誰かがこれに光を当てることができれば、感謝します!
これよりも良い解決策はありますか:
奇妙な理由で、私のアプリケーションは日本語または中国語で表示されます。これで失われました。
c++ - C++ は LPCWSTR と LPVOID の長さを取得します
winapi 関数WinHttpSendRequest()は、3 番目のパラメーターの 2 番目のパラメーターのサイズと、5 番目のパラメーターの 4 番目のパラメーターのサイズを必要とします。
どうすれば計算できますか?
関数をラップして、次のように文字列を直接渡します。
上記のコードは機能しません。:/
私はあなたが私を助けてくれることを願っています.
windows - WINDOWS ドライブの VolumeDetails の取得 - 「char []」から「LPCWSTR」への変換でスタックする
VolumeDetails
Windows システムのドライブ ラベルとそれぞれのボリューム シリアル番号を取得しようとしています。私は 1 時間試してみましたが、構文が間違っているコードを作成しました。現在、次のエラーが発生して
います-これerror C2664: 'GetVolumeInformationW' : cannot convert parameter 1 from 'char []' to 'LPCWSTR'
が私のコードです:
に置き換えchar
てみましwchar_t
たが、ビルド エラーは発生しませんでしたが、アプリケーションの実行中にError Code 3- Path not found!
.
修正されたコード:
出力: