由于实验室有人用了含病毒的软件,网管把实验室出口给封了,周末人家又不上班。看样子树莓派是玩不成了,所以昨天在宿舍写windows程序,最基本的窗口程序,听说这段代码初学者至少要自己敲5遍以上。代码如下:

#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //之前把这个回调函数的名字写成WinProc,结果编译器总是提示:未定义的标识符 汗!!!!
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT("MyWindows");
HWND hwnd;
MSG msg;
WNDCLASS wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = ;
wndclass.cbWndExtra = ;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName = NULL;
wndclass.lpszClassName = szAppName; if (!RegisterClass(&wndclass))
{
MessageBox(NULL, TEXT("这个程序需要在Windows NT才能执行!"), szAppName, MB_ICONERROR);
return ;
} hwnd = CreateWindow(szAppName,
TEXT("鱼C"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd, iCmdShow);
UpdateWindow(hwnd); while (GetMessage(&msg, NULL, , ))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
} return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
RECT rect; switch (message)
{
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, TEXT("大家好,这是我的第一个窗口程序!"), -, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER);
EndPaint(hwnd, &ps);
return ;
case WM_DESTROY:
PostQuitMessage();
return ;
} return DefWindowProc(hwnd, message, wParam, lParam);
}
/*
Windows窗口诞生过程
定义窗口类结构(WNDCLASS) -> 注册窗口类(RegisterClass) -> 创建窗口(CreateWindow)->显示窗口(ShowWindow)
->更新窗口(UpdateWindow)->消息循环(GetMessage->TranslateMessage->DispatchMessage)*/

当我第一次运行这段代码时,是没有问题的,成功显示了一个最基本的窗口,并且指出缩放,右上角三个按钮也都有用

但是今天凌晨同样的一段代码,运行时却报了这样一个错:

  我百度(汗,*墙遇到了点困难)了一晚上,一直没找到合适的解决方案。最后,我实在没办法了,同时打开这两个工程,对着它们的配置一个个看它们的差异,这是最笨的办法了。最终找到了bug的源头:这是窗口程序,我却在配置里设置为控制台程序 所以解决方案无非两种:1.改配置,将其改为窗口程序。2.在新建一个项目时设置为窗口程序,而不是控制台程序,其实和方案一是一回事。

第一种解决方案:在工具栏的 项目-->属性-->链接器-->系统-->子系统中选择 窗口 然后保存。这样重新编译,链接就可以运行,我猜测两种不同的选择,链接器会链不同的库,如果窗口程序链的是控制台的库当然运行不了。

第二种解决方案:在新建项目的时候选择Win32项目而不是Win32控制台应用程序

  好了,Windows编程之旅开始了!

vs 2013 Express 无法启动程序xxx.exe,系统找不到指定文件的更多相关文章

  1. C++错误——”无法启动程序”…\xxx.exe” 系统找不到指定的文件”

    背景 在VS2010环境下,升级了一个用C++编写的程序,编译生成成功,但是,不能在VS中直接运行(可以通过打开debug文件目录的exe应用程序运行),提示以下错误:”无法启动程序”…\xxx.ex ...

  2. XX.exe 系统找不到指定文件

    错误:unable to start ... XX.exe 系统找不到指定文件 今天调试一个项目,关于泊松融合的,项目名叫PoissonEditing,编译通过之后一直再报错,找不到PoissonEd ...

  3. VS2012中出现“无法启动程序...debug\abc.exe,系统找不到指定文件”的问题!

    VS 2005在生成可执行文件时使用了一种新的技术,该技术生成的可执行文件会伴随生成一个清单文件(manifest file)(.manifest后缀文件)(其本质上是XML文档,你可以用文本编辑器打 ...

  4. 无法启动"D\projects\hello\Debug\hello.exe" 系统找不到指定的文件。[LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏]

    这两天安装Visual Studio遇到这样的一个问题,用自己的电脑和公司的电脑都出现同样的问题.两台电脑都是新系统,按理来说是没有问题的.但是一出现问题,对于我这个小白来说,还是耗费了挺多精力都无果 ...

  5. window无法启动mongodb服务:系统找不到指定的文件错误的解决方法

    原文:http://www.phperz.com/article/15/0530/131534.html 错误描述 错误2:系统找不到指定文件 思考过程 昨天做测试的时候,先后安装了两次MongoDB ...

  6. Visual Studio 2013 错误系统找不到指定文件,0x80070002

    错误:Visual Studio 2013 按照成功后,可以创建空web项目,但不能建webform 和 mvc 项目. 提示系统找不到指定文件,0x80070002. 解决方式: Step1: Wi ...

  7. PhpStorm中报 “Cannot run program git.exe, 系统找不到指定的文件” 

    http://blog.csdn.net/lamp_yang_3533/article/details/52003021 在使用PhpStorm的GitHub或Git功能时,经常会出现以下错误信息: ...

  8. MySQL启动错误---发生系统错误/系统找不到指定的文件。

    今天启动mysql时,突然报错发生系统错误,系统找不到指定的文件.当时有点懵,安装mysql 之后,一直就没有修改过,怎么会报错呢?上网搜索了一下,重新安装一下mysql服务就可以了,现在也不知道什么 ...

  9. 运行vs2010,Debug时发生“无法启动程序"http://localhost:xxx",系统找不到指定文件

    网上参考回答:应该是Visual Studio不能启动浏览器导致的结果!第一种结果是没有设置默认的浏览器,第二种情况是注册表被修改了! 我的尝试: 1.在启动处点击下三角,选择“使用以下浏览器浏览” ...

随机推荐

  1. java中Commons-fileupload实现上传

    java中Commons-fileupload组件实现上传 在实现功能之前需要导入两个jar文件,分别是 commons-fileupload-1.3.1.jar 和 commons-io.jar 文 ...

  2. c/c++面试题(4)字符串翻转/打印任意进制格式/类型转换

    1.字符串的翻转,这里一般是字符数组.不包括字符串字面值. char* reversal_str(char* str,size_t size); 翻转之后的字符串是原来的字符串的翻转. #includ ...

  3. jQueryMobile控件之页面切换

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. qt 程序启动参数 -qws  (转至 MrTXK

    运行嵌入式程序 在嵌入式QT版本中,程序需要服务器或自己作为服务器程序.服务器程序构造的方法是构造一个QApplication::GuiServe类型的QApplication对象.或者使用-qws命 ...

  5. Android常见控件— — —Button

    <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=&qu ...

  6. SQL.WITH AS.公用表表达式(CTE)

    一.WITH AS的含义    WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到.有的时候,是 ...

  7. 团队开发——冲刺2.a

    冲刺阶段二(第一天) 1.今天准备做什么? 收集游戏图片:开始.暂停.继续.重新开始.退出……为了界面的后期美工做准备. 2.遇到什么困难? 网上的图片很多,但是比较难找到统一风格的.

  8. Android应用程序“R文件”消失

    其实Android自己维护这一个 public final class R类主要是跟新资源文件,这个R.java无需我们自己去修改,如果你不了解千万不要去修改它,它定义的每个资源值都是唯一的,不会和系 ...

  9. map的应用

    1.map最基本的构造函数:    map<string , int >mapstring;         map<int ,string >mapint;    map&l ...

  10. Github 笔记

    在本地创建并切换 git checkout -b your_branch_name 把本地分支的修改提交到远端的分支上 git push origin local_branch_name:remote ...