質問編集履歴

1

void error_dialog(HWND hWnd)を追加しました。

2020/04/13 11:52

投稿

yasu2711
yasu2711

スコア7

test CHANGED
File without changes
test CHANGED
@@ -34,6 +34,8 @@
34
34
 
35
35
  #include <windows.h>
36
36
 
37
+ #include <tchar.h>
38
+
37
39
  using namespace std;
38
40
 
39
41
  int main(int) {
@@ -62,7 +64,37 @@
62
64
 
63
65
  //?????COM4ポートをオープンする ????
64
66
 
65
- hCom = CreateFile(L"COM4", (GENERIC_READ | GENERIC_WRITE), 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
67
+ hCom = CreateFile(L"\\.\COM4", (GENERIC_READ | GENERIC_WRITE), 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
68
+
69
+ void error_dialog(HWND hWnd) {
70
+
71
+ DWORD errorcode = GetLastError();
72
+
73
+ LPVOID lpMsgBuf;
74
+
75
+ FormatMessage(
76
+
77
+ FORMAT_MESSAGE_ALLOCATE_BUFFER // テキストのメモリ割り当てを要求する
78
+
79
+ | FORMAT_MESSAGE_FROM_SYSTEM // エラーメッセージはWindowsが用意しているものを使用
80
+
81
+ | FORMAT_MESSAGE_IGNORE_INSERTS,// 次の引数を無視してエラーコードに対するエラーメッセージを作成する
82
+
83
+ NULL, errorcode, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),// 言語を指定
84
+
85
+ (LPTSTR)&lpMsgBuf, // メッセージテキストが保存されるバッファへのポインタ
86
+
87
+ 0,
88
+
89
+ NULL);
90
+
91
+
92
+
93
+ MessageBox(hWnd, (LPCTSTR)lpMsgBuf, _TEXT("エラー"), MB_OK | MB_ICONINFORMATION);
94
+
95
+ LocalFree(lpMsgBuf);
96
+
97
+ };
66
98
 
67
99
  if (hCom != INVALID_HANDLE_VALUE) {
68
100