Closed kbys0519 closed 2 years ago
バイナリパスの表示とWの方を実装してpushしました。 ただService.exeのサンプルにCreateServiceWがなく、CresteServiceWの方はまだ動作確認できていないです。 サンプルプログラムを自分で作成しようとしているんですけど上手くできない状態です。元から用意して頂いているTestExecutables/Service.cppを書き換えて作ろうとしているんですけど、LPCWSTRなどの変数型が調べてもうまく揃えられない状態です。。。
Wに関しては、これとか参考にすると良いかもです! https://github.com/MachineHunter/SafeExecute/blob/master/TestExecutables/MoveFileExW.cpp#L12-L14
これコンパイルする時注意なのが、64bitのバイナリを吐くmingw64とかのコンパイラを使わないといけなくて、32bitだとフックがかからないんだけど、そこは大丈夫かな?
基本的に char
(普通の) と wchar
(ワイド文字) があって、
それぞれのポインタがWindowsでは LPSTR = char*
と LPWSTR = wchar*
ってtypedefされてる。
これにプラスして、定数バージョンの LPCSTR = const char*
と LPCWSTR = const wchar*
もあるって感じかな。
( LP
は Long Pointerの略で64bitのアドレス空間だからlong(32bitならLいらない)、C
が定数 )
代入する時は、普通がこう LPSTR hoge = "hoge"
に対して、ワイド文字列が LPWSTR hoge = L"hoge";
こんな感じでLが付く。あ、後 (LPCWSTR)"LPCSTRの文字列"
の変換はできないので注意。
改行コードについてお騒がせしました。管理者権限のコマンドプロンプトでの動作確認済みです。