動作確認
C++ Builder XE4
Unit1.cpp
void __fastcall TForm1::AccessPrivilege( char *Prvlg, String ServerName, bool Mode ) throw(Exception)
{
HANDLE htoken;
TOKEN_PRIVILEGES tknPrvlgs;
bool success = OpenProcessToken( GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &htoken );
if( !success ){
throw Exception(ErrOpenProcess);
}
success = LookupPrivilegeValue( ServerName.c_str(),
Prvlg,
&(tknPrvlgs.Privileges[0].Luid) );
...
上記をコンパイルしようとして以下のエラーが出ていた。
E2342(41): E2034 'char *'型は'const wchart_t*'型に変換できない
41行目というのは &(tknPrvlgs.Privileges[0].Luid) );
の行。
しかしながら、問題は41行目でなく40行目のPrvlg,
の方だった。
Prvlgがchar *型だったのでダメだった。
エラーメッセージがmisleadingだ。