argv envp
以前 Linux 環境で動作する .out で,コマンドラインを取得したくなり作成したコード.
Windows でもそのまま動作する様に作成したもので,予め main でグローバルな変数に argv を登録している.
#include "cmd_line.hxx"
int _tmain (int argc,TCHAR* argv[],TCHAR* envp[])
{
{
::reg_argv(argc,argv,envp) ;
}
{
::dmp_arg() ;
}
return 0 ;
}
Windows の場合は __argc と __argv が利用できるのであまり必要ない.
::GetCommandLine を使用することも可能.
Win11 24H2 対応 ユーザの追加
先日 24H2 をいろいろ調べた時「ゲストログオンを有効にする」ことで対応した.
が,それではセキュリティの問題があるため改めて調べてみた.
それで検索してみたが,わかりやすいページがあまり見つからず,私の環境での設定をまとめた.
画像は仮想マシンで Win10 Home と Win11 Pro 24H2 を用意してのもの.
サーバ側 Win10-Home
「スタート」をクリックして「user」と入力.「他のユーザーの追加、編集、削除」を選択.
「他のユーザー」の「その他のユーザーをこの PC に追加」を選択.
「Microsoft アカウントを持たないユーザーを追加する」をクリック.
共有アクセスするためのユーザー(ここでは “cad” )を追加.この時,必ずパスワードを設定すること.
クライアント側 Win11-24H2
「スタート」をクリックして「shikaku」と入力.「資格情報マネージャー」を選択.
「Windows 資格情報」を選択.「Windows 資格情報の追加」をクリック.
「サーバー名」,「ユーザー名」,「パスワード」を入力して「OK」.
これで \\Win10-Home としてアクセスできる様になる.
コンパイル時の #define 値の表示
次の様なコードをコンパイル時に表示したくなった.
#ifdef _MSC_VER
str = _T("_MSC_VER ") + ::utot(_MSC_VER,10) ;
#endif
std::tout << str ;
以前一度使用しているが,それをもう少しいろいろと...
次の様に _CRT_STRINGIZE とすれば _MSC_VER 1941 と表示される.
#ifdef _MSC_VER
#pragma message ("_MSC_VER " _CRT_STRINGIZE(_MSC_VER) )
#endif
VC 14 以降は vcruntime.h で次の様になっている.
#define _CRT_STRINGIZE_(x) #x
#define _CRT_STRINGIZE(x) _CRT_STRINGIZE_(x)