問題タブ [strsafe]
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.
string - _vscwprintfの安全な代替手段
MSVCでは、多くの文字列関数が元のバージョン、安全なバージョン、およびstrsafeバージョンを提供します。たとえば、、、sprintf
およびsprintf_s
はStringCchPrintf
すべて同等であり、安全性が向上します(ある程度のメトリック)。
今、私はそれを行うコードを少し持っています:
正しいサイズのバッファを割り当てるため。
strsafe関数を調べていると、の代替案が見つかりましたが、の代替案は見つかり_vsnwprintf_s
ませんでした_vscwprintf
。グーグルのチェックは何も返さなかったようです。
そのコードのビットを書くためのstrsafeな方法、または私が欠けている両方の代替関数がありますか、または元の関数とstrsafe関数を混合することは許容されますか?(現在の方法については、すべてのルールがPREfastの/ w4で、安全上の警告は表示されません)
c - 文字列セーフ関数とセキュリティ強化 CRT
StringCch* 関数は、CRT 文字列関数の安全なバージョンよりも安全と見なされますか?
StringCchCatW は wcscat_s よりも安全ですか? または StringCchCopyW 対 wcscpy_s ですか?
c++ - MinGW に strsafe.h はありませんか? 代わりに何を使用しますか?
ここから最初のスニペットをコンパイル: http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx
与えます:d:\!TC\cpp\control.cpp:4:21: fatal error: strsafe.h: No such file or directory compilation terminated.
c++ - StringCchPrintf を使用して部分文字列から文字列を作成する
エラーメッセージからの部分文字列から文字列を作成しようとしています:
%s
秒が の値に置き換えられることを期待していましたerror_msg
が、出力は次のとおりです。
The error is: ☐☐a
部分文字列が表示されるように上記のコードを変更するにはどうすればよいですか?
EDIT1 次のことも試しましたが、再びボックスが表示されます。
c++ - 説明されているように、RtlStringCbPrintf は ntstrsafe.h にありません。
Winsock Kernel でRtlStringCbPrintfを使用しようとしています。Ntstrsafe.h をインクルードしましたが、コンパイラでエラーが表示されます
RtlStringCbPrintfAまたはRtlStringCbPrintfWを使用すると、コンパイルされます。ジェネリック バージョンを使用できないのはなぜですか? Ntstrsafe.h を見ると、RtlStringCbPrintfAとRtlStringCbPrintfWのプロトタイプ宣言が表示されますが、コメントでは参照されていますが、RtlStringCbPrintfの宣言はありません。Character Set プロパティが使用するバージョンを選択するように汎用フォームを使用できないのはなぜですか? My Character Set プロパティがUse Multi-Byte Character Set に設定されている
c++ - StrSafe 関数 (StringCbPrintf_lW) のロケール対応バージョンが見つかりません
私たちは (誤って) StringCbPrintfW を使用してデータベース クエリを作成しましたが、これはカンマを小数点記号として使用するすべてのロケールで惨めに失敗しました。修正は簡単ですよね?ロケールを取る StringCbPrintf_lW も strsafe.h で定義されています。どちらも次のように定義されています。
したがって、ロケールを作成し、StringCbPrintfW を StringCbPrintf_lW に置き換えるだけです。
Intellisense は満足していますが、GoToDefinition は満足していますが、ClCompile はそうではありません。私は得続けます
エラー C3861: 'StringCbPrintf_lW': 識別子が見つかりません
何が間違っているのですか?
opencv - Mingw が OpenVC ライブラリのコンパイル中にファイル strsafe.h を見つけられない
OpenCV ライブラリを試してみたいのですが、ビルド プロセス中に問題が発生しました。私はMingwコンパイラを使用してWindows 10を使用しています。しばらくしてコマンドmingw32-makeを起動すると、次のエラーが表示されます。
C:\Github\opencv\modules\videoio\src\cap_dshow.cpp:337:21: fatal error: strsafe.h: No such file or directory
#include <strsafe.h>
^
compilation terminated.
modules\videoio\CMakeFiles\opencv_videoio.dir\build.make:187: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj' failed
mingw32-make[2]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/src/cap_dshow.cpp.obj] Error 1
CMakeFiles\Makefile2:4340: recipe for target 'modules/videoio/CMakeFiles/opencv_videoio.dir/all' failed
mingw32-make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
Makefile:159: recipe for target 'all' failed
mingw32-make: *** [all] Error 2
問題のあるファイルはcap_dshow.cppであり、コンパイラは、ヘッダー ファイルstrsafe.hが見つからないと言います。C:\MinGW\include フォルダー内にこのファイルは存在せず、どこにあるのかわかりません。
「MinGW Installation Manager」というツールを使用して MinGW コンパイラ (およびその他のもの) をインストールしました。このツールを使用すると、他のライブラリもインストールできますが、これらのライブラリにstrsafe.hファイルが含まれているかどうかはわかりません。
私の質問はこれと重複している可能性がありますが、受け入れられた回答にはリンクが壊れています。