WindowsフォームアプリケーションでPCをシャットダウンさせるプログラムを製作中です。
プログラムソフトはVisual C++ 2008を使用しています。
フォーム上のボタンをクリックしたらシャットダウンさせるものです。
コンソール用の以下のコードをそのまま追加するとリンクエラーがでます。
int ShutDown(){
HANDLE hToken;
TOKEN_PRIVILEGES TokenPri;
if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken) == FALSE){
return FALSE;
}
if(LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &TokenPri.Privileges[0].Luid) == FALSE){
return FALSE;
}
TokenPri.PrivilegeCount = 1;
TokenPri.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &TokenPri, 0, (PTOKEN_PRIVILEGES)NULL, 0);
if(GetLastError() != ERROR_SUCCESS){
return FALSE;
}
ExitWindowsEx(EWX_SHUTDOWN, 0);
return 0;
}
リンクエラーは、
error LNK2028: 未解決のトークン (0A00000F) "extern "C" int __stdcall ExitWindowsEx(unsigned int,unsigned long)" (?ExitWindowsEx@@$$J18YGHIK@Z) が関数 "private: int __clrcall timer_bata::Form1::ShutDown(void)" (?ShutDown@Form1@timer_bata@@$$FA$AAMHXZ) で参照されました。
他3つになります。
コンソール用のシャットダウン実行ファイルをWindowsフォームアプリケーションから外部コマンドを呼び出す形ではできたのですが、一つの実行ファイルにまとめることができません。どうしたらよろしいでしょうか。
No.1ベストアンサー
- 回答日時:
#pragma comment(lib,"User32.lib")
#include <windows.h>
とか?
この回答への補足
回答ありがとうございます。
#include <windows.h>は元々追加していました。
#pragma comment(lib,"User32.lib")を追加すると上記のエラーの一つ
~int __stdcall ExitWindowsEx(unsigned int,unsigned long)" ~がおかげさまでなくなりました。
以下の残り3つのエラー
~int __stdcall AdjustTokenPrivileges~
~int __stdcall LookupPrivilegeValueW~
~int __stdcall OpenProcessToken~
も#pragma comment(lib,"xxxxx.lib")を追加することで解決できるということでしょうか。
おかげさまで、
#pragma comment(lib,"User32.lib")
#pragma comment(lib,"advapi32.lib")
の追加で解決しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部依存関係について
-
popen・pcloseについて
-
このプログラムを動かしたいの...
-
error LNK2001について
-
「外部シンボルが未解決」につ...
-
gdiplusのリンクエラー
-
C++/CLIでfstream(.NET 3.5)
-
コンパイルエラー
-
LNK2001(Pro*c)
-
python エラー
-
エクセルのエラーメッセージ「4...
-
VBAを何回も作り直して、容量が...
-
unsigned long long 型のフォー...
-
Excelのエラーで困ってます。
-
fortranでプログラムを実行する...
-
<unistd.h>をVisualStudioでつ...
-
C言語でヘッダファイルにグロー...
-
適切な変換関数が存在しない???
-
バッチからsqlplusの接続エラー...
-
ソフトの開発言語を調べる方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部依存関係について
-
教えてgooについて
-
外部シンボル" ~~"は未解決で...
-
error LNK2001について
-
LNK2019: 外部シンボル どのよ...
-
C言語のエラー LNK1120: 外部参照
-
C++でのエラー LNK2001
-
外部シンボルの未解決のエラー
-
wsprintfのエラーについて
-
このプログラムを動かしたいの...
-
パブリックシンボルとは?
-
未解決の外部シンボル
-
外部シンボル未解決 LNK2001
-
Microsoft visual C++ 2010 Exp...
-
LNK2001(Pro*c)
-
外部シンボルについて
-
DLL呼び出しAPのリンクエラーに...
-
C++ Builderでユニットの追加
-
C++/CLIでfstream(.NET 3.5)
-
libdecodeqrをVC6.0のダイアロ...
おすすめ情報