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で質問しましょう!
似たような質問が見つかりました
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
外部依存関係について
-
質問させてください。
-
LNK2019: 外部シンボル どのよ...
-
DLL呼び出しAPのリンクエラーに...
-
wsprintfのエラーについて
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
C言語をコンパイルするとコンピ...
-
適切な変換関数が存在しない???
-
アプリケーションのDLLファイル...
-
VBAを何回も作り直して、容量が...
-
1 つ以上の複数回定義されてい...
-
実行後にコンパイルに失敗しま...
-
unsigned long long 型のフォー...
-
<math.h>があるのにsqrtが・...
-
fortranでプログラムを実行する...
-
デバッグとビルドは何が違うの...
-
eclipseでプログラムが実行でき...
-
C言語でヘッダファイルにグロー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部依存関係について
-
外部シンボルの未解決のエラー
-
コンパイルエラー
-
外部シンボル" ~~"は未解決で...
-
LNK2019: 外部シンボル どのよ...
-
DLL呼び出しAPのリンクエラーに...
-
LNK2001(Pro*c)
-
このプログラムを動かしたいの...
-
error LNK2001について
-
プロセスIDの取得の方法。
-
エラー 未解決の外部シンボル
-
C++ の LNK2001エラー
-
パブリックシンボルとは?
-
OpenCVでの画像サイズ取得につ...
-
C言語のエラー LNK1120: 外部参照
-
C++でのエラー LNK2001
-
「外部参照 1 が未解決です。」...
-
Visual Stdio.netでビルドがで...
-
エラー lnk2019について
-
wsprintfのエラーについて
おすすめ情報