VS2015仿真emWin报错解决方法

本文介绍了解决在编译Example程序时遇到的错误的方法,包括如何正确配置连接器属性,以及如何添加必要的库文件以确保编译过程顺利完成。

1-调试- SimulationTrial属性

2-连接器-输入

1)忽略所有默认库-是。

2)忽略特定默认库-LIBC.lib;LIBCMTD.lib。

3、连接器-高级

映像具有安全处理程序-否。



上面方法可运行application中的例程。

如果没法运行例程中的程序,则:

在 输入-附加依赖项-添加:;legacy_stdio_definitions.lib。





第二次补充:

上面的部分完成以后可以实现官方的例程,也就是Application里的东西,但是我们在学emwin的时候起初肯定不会使用它,当我们注释掉这里面的文件并添加Sample里的文件到工程中去时,会出现如下错误


这时你需要按照上面的方法在附加依赖项里加入"legacy_stdio_definitions.lib",编译即可通过。

如果上面步骤完成后依然出现如下错误


根据提示可以知道,你在屏蔽了Application里的所有文件后,却没有将Sample里的东西添加到工程中(取消屏蔽),因为每个Sample里的每个例程都是由一个MainTask函数来主导的,而这个segger的模拟程序会调用MainTask(如图中说的在_Thread@4中被引用),所以不可没有也不可重复,像这样:




#include <windows.h> #include "GUI_SIM_Win32.h" #include "LCD_SIM.h" #include "GUI.h" void MainTask(void); static DWORD __stdcall _Thread(void* Parameter) { MainTask(); return 0; } static LRESULT CALLBACK _WndProcMain(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { SIM_GUI_HandleKeyEvents(message, wParam); switch (message) { case WM_DESTROY: PostQuitMessage(0); break; } return DefWindowProc(hWnd, message, wParam, lParam); } static void _RegisterClass(HINSTANCE hInstance) { WNDCLASSEX wcex; memset (&wcex, 0, sizeof(wcex)); wcex.cbSize = sizeof(WNDCLASSEX); wcex.hInstance = hInstance; wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = (WNDPROC)_WndProcMain; wcex.hIcon = 0; wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE + 1); wcex.lpszMenuName = 0; wcex.lpszClassName = "GUIApplication"; RegisterClassEx(&wcex); } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { DWORD ThreadID; MSG Msg; HWND hWndMain; _RegisterClass(hInstance); SIM_GUI_Enable(); hWndMain = CreateWindow("GUIApplication", "Application window", WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_VISIBLE, 0, 0, 328, 267, NULL, NULL, hInstance, NULL); SIM_GUI_Init(hInstance, hWndMain, lpCmdLine, "GUI Simulation"); SIM_GUI_CreateLCDWindow(hWndMain, 0, 0, 320, 240, 0); CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)_Thread, NULL, 0, &ThreadID); while (GetMessage(&Msg, NULL, 0, 0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } SIM_GUI_Exit(); } 使用这个文件会和下载的emwin仿真器冲突吗
最新发布
09-21
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值