// messageboxtest.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include #include #include #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )// 设置入口地址 using namespace std; //u32_Data enum class EventID : int { //停止扫描 SCAN_STOP = -2, //异常 HAVE_ERROR = -1, //正常状态 NORMAL = 0, //开盖 OPEN_COVER = 1, // 无纸 NO_FEED = 2, // 搓纸失败 FEED_IN_ERROR = 4, // 卡纸 PAPER_JAM = 8, // 检测到双张 DETECT_DOUBLE_FEED = 16, // 检测到订书钉 DETECT_STAPLE = 32, // 纸张倾斜 PAPER_SKEW = 64, // 自动模式 AUTO_SCAN_MODE = 65, // 手动模式 MANAUL_SCAN_MODE = 66, // 计数模式 COUNT_MODE = 67, // 硬件错误 HARDWARE_ERROR = 68, // FPGA崩溃 FPGA_ERROR = 68, // 开始 START_SCAN = 69, //停止 STOP_SCAN = 70, //有图 HAVE_IMAGE = 71, // 更新扫描参数 UPDATE_SCAN_PARAMETER = 72, // PC繁忙或出错 PC_SCAN_BUSY_or_ERROR = 73, //折角 DOGEAR = 74, //幅面检测异常 SIZE_ERROR, //USB 未连接 USB_DISCONNECTED = 200, //未找到扫描仪 SCANNER_NOT_FOUND = 201, //扫描仪被占用 SCANNER_IS_IN_USING = 202 }; static map msgs = { {EventID::OPEN_COVER,"扫描仪开盖!请关闭扫描仪上盖!"}, {EventID::NO_FEED,"无纸!请放置纸张!"}, {EventID::FEED_IN_ERROR,"搓纸失败!请整理纸张!"}, {EventID::PAPER_JAM,"卡纸!"}, {EventID::DETECT_DOUBLE_FEED,"双张"}, {EventID::DETECT_STAPLE,"检测到订书针!"}, {EventID::PAPER_SKEW,"纸张歪斜!请整理纸张!"}, {EventID::COUNT_MODE,"计数模式,请退出计数模式!"}, {EventID::HARDWARE_ERROR,"硬件异常!请重启扫描仪!"}, {EventID::USB_DISCONNECTED,"USB连接异常!"}, {EventID::SCANNER_NOT_FOUND,"未找到扫描仪!请检查电源或者USB连接线是否接通!"}, {EventID::SCANNER_IS_IN_USING,"设备已被其他程序占用,请关闭占用程序之后再重试!"}, {EventID::DOGEAR,"检测到折角!"}, {EventID::SIZE_ERROR,"检测到扫描幅面与设置幅面不匹配!请检查!"} }; int main(int argc, char** argv) { if (argc >= 2) { int key = atoi(argv[1]); if (msgs.count((EventID)key)) { string msg = msgs[(EventID)key]; if (key == 74) { char text[30] = "检测到折角!,页码为:"; strcat_s(text, argv[2]); MessageBox(NULL, text, TEXT("提示"), MB_OK | MB_ICONINFORMATION | MB_SYSTEMMODAL); } else { MessageBox(NULL, msg.c_str(), TEXT("提示"), MB_OK | MB_ICONINFORMATION | MB_SYSTEMMODAL); } } else { MessageBox(NULL, TEXT("未知异常"), TEXT("提示"), MB_OK| MB_ICONINFORMATION| MB_SYSTEMMODAL); } } return 0; //std::cout << "Hello World!\n"; } // 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单 // 调试程序: F5 或调试 >“开始调试”菜单 // 入门使用技巧: // 1. 使用解决方案资源管理器窗口添加/管理文件 // 2. 使用团队资源管理器窗口连接到源代码管理 // 3. 使用输出窗口查看生成输出和其他消息 // 4. 使用错误列表窗口查看错误 // 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目 // 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件