問題タブ [tchar]
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++ - tstring typedef の問題
便利な tstring を自分で typedef しようとすると問題が発生します (以下を参照)。
これをコンパイルしようとすると、コンパイル エラーが発生します。「ERROR here (1)」のエラーは次のとおりです。
エラー 3 エラー C2871: 'std': この名前の名前空間は存在しません \nisampleclient\nisampleclientdefs.h 16
宣言を削除してusing namespace std;
ERROR HERE (2) を次のように変更するとtypedef std::basic_string<TCHAR> tstring;
、エラーが発生します。
エラー 3 エラー C2653: 'std' : クラスまたは名前空間の名前ではありません \nisampleclient\nisampleclientdefs.h 23
代わりにその時点で。
前もって感謝します。:)
c++ - _TCHAR* をファイル名として使用してファイルを開く方法は? c/c++
私のメインには次の署名があります。
私は次のことを実行したいと思います:
しかし、タイプの不一致があります。どうすればいいですか?私は使用する必要があります:
ありがとう!
visual-studio-2010 - 「System::String ^」を「TCHAR」に変換するにはどうすればよいですか?
ここで C++ と C# の通信に関する質問をしました。問題は解決しましたが、新たな問題が発生しました。
これは文字列を返します (C#)
これは TCHAR* (C++) を想定しています
この問題を解決する方法をグーグルで検索しましたが、文字列にニンジン(^)が付いている理由がわかりません。戻り値を String から C++ が受け入れる別のものに変更するのが最善でしょうか? または、値を割り当てる前に変換を行う必要がありますか?
windows - 常に_tprintfを含むchar文字列を意味するフォーマット指定子はありますか?
TCHAR
サポートを使用してWindowsでアプリをビルドする場合、 %s
inはAnsiビルドとUnicodeビルドの文字列を_tprintf()
意味し、その逆を意味します。char *
wchar_t *
%S
char *
しかし、AnsiビルドかUnicodeビルドかに関係なく、常に文字列を意味するフォーマット指定子はありますか?Windowsでさえ、UTF-16は実際にはファイルやネットワークに使用されていないため、アプリをコンパイルするネイティブの文字タイプに関係なく、バイトベースの文字列を処理することがかなり頻繁にあります。
visual-studio-2010 - c++/CLI で Unhandled exception Access violation の書き込みが発生するのはなぜですか?
私は、c++ win32console と c++ dll から抜け出すソリューションを書くのに苦労しています。私は最終的にリンカエラーなしでそれらを話すことができました(したがって、両方が完全に管理されたC ++ / CLIプロジェクトであると想定しています)が、コンソールを実行すると次のエラーが発生します。
Company.Pins.Bank.Win32Console.exe の 0x03f71849 で未処理の例外: 0xC0000005: アクセス違反の書き込み場所 0x00000001。
コンソールには以下も表示されます
未処理の例外: System.NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。c:...\win32console.cpp:line 20 の wmain で _wmainCRTStartup()
しかし、これは未処理の例外が原因であると想定しています。
このエラーを追跡するだけでなく、以下のコード ブロックで return を実行するとエラーが発生します。(return でリンクされたメソッドは問題なくステップ スルーしているように見えますが、return がうまくいかないようです。)念のために言っておきますが、以下のコードは自分で書いたのではなく、Visual Studio によって生成されたものです。
編集: win32console.cpp コードは以下のとおりです。
c++ - C++ で TCHAR を文字列に変換する
次のように、TCHAR を文字列に変換しようとしています。
のそれに設定mypath
する必要がありpath
ます。私は単純なループを実行して連結path[index]
しましたがmypath
、これは機能しますが、この方法は好きではありません。
私は C++ を初めて使用しますが、多くの C# を実行しました。「char」を渡す例を見てきましたGetModuleFileName
が、それは好きではありません。TCHAR
またはが必要LPWSTR
です。
c++ - TCHAR配列をstd::stringに変換する方法は?
TCHAR
配列をstd::string
(ではなく)に変換するにはどうすればよいstd::basic_string
ですか?
c - Windows コードから TCHAR を削除する必要がありますか?
非常に古い (10 年) C コードを修正しています。このコードは、Unix/Mac で GCC を使用してコンパイルし、Windows で MinGW を使用してクロスコンパイルします。現在、全体に TCHAR 文字列があります。TCHAR を取り除き、代わりに C++ 文字列を使用したいと思います。Windows 全体の機能を使用する必要はありますか、それとも Unicode と UTF-8 ですべてを行うことができますか?
c++ - スタック文字列をヒープ文字列と連結すると、奇妙な結果が得られます
以下は合理的な説明があると確信していますが、それでも私は少し困惑しています。
問題は、、、を作成し_TCHAR[CONSTANT]
、_TCHAR*
それらを連結して結果を返す関数にあります。
何らかの理由で、whatTheHeck()
fromへの呼び出し_tmain()
はぎこちないものになります。
対照的に、ヒープを使用する場合は、期待どおりに機能します。
なぜ違いがあるのですか?
_tcscat()
内容ではなくメモリアドレスを連結し、returnがスタックをパージするためですか?
c++ - Win32 API呼び出しに「A」サフィックスが必要なのはなぜですか?それを修正する必要がありますか?
Winシェルからコマンドを実行するには、必要でした
そして今、私はForgers Win32チュートリアルを進めていますが、画面にゴミが印刷されないようにするために必要なAサフィックスを見つけています。これは、OSのデフォルトの文字形式と関係があることを私は知っています。2番目の例で使用する*A関数の数に関係なくNULLが返されるため、OSを「正規化」できれば、これが最善の解決策になる可能性がありますRegisterClassExA
(* Aサフィックスのllloottttssssを追加して以下に再現)
上記のコードを再検討してForgers(* Aを削除)のようL""
にし、代わりに文字列初期化子を使用しましたが、割り当て中にエラーが発生しますconst char g_szClassName[] = L"myWindowClass";
エラーC2053:'g_szClassName':ワイド文字列の不一致
に置き換えるchar
と、認識されたタイプではないwchar
ことを示すコンパイラエラーメッセージが生成されます。wchar
_編集_
L""
私は文字列指定子が好ましい解決策であり、私が追求したいものであることを収集します。私の質問が茂みの周りを打ち負かしているようであれば申し訳ありませんが、私は提案を受け入れています。
そのコードを現在使用しているものに更新し、到達できないものを切り取りました。
_編集_
wchar_t
エラーコードは87、無効なパラメータなので、パラメータ( )の割り当ては結局間違っていると思い wc.lpszClassName = g_szClassName;
ます...:@(
_編集_
間違っていると思いますか?!const LPCTSTR g_szClassName = L"myWindowClass";
物事を修正(または破壊)しませんでした。