0.重拾winapi,从头再学习,一点点进步
写在最前面,也是重新再学习API的动力
因为前面换工作没有成功,疫情影响,目标单位的工作量减少了,领导也不再需要我这种能力还行的廉价劳动力,CAD和信号功力还行吧,但是奈何海涛董事长走了,设计院的工作也给整黄了。还是接着研究我们公司的代码,学点真本事!那就开始吧,多说无益,点滴做起!每天进步一点点。
做菜的启示
我一有时间就在家做做菜,不是大厨,做的两样菜自己比较合口味,大盘鸡和抓饭。暴露了我是新疆人。回归正题,做菜每天都是一种做法,没有什么新奇,味道也是自创的,说实在的真的就是能吃而已,健康是健康,但是没有追求,就跟我老婆说的一样,和我生活就跟白开水一样,没有一点劲,那是不是生活加点料呢,那就是先从做菜开始,一周学一道菜总可以吧。在自己的觉悟下,已经学会了两道菜,白菜炖粉条,酸辣葫芦!
遇到的第一个问题
编译程序时提示一个错误,一个简单的错误岂能难住大爷?
上错误代码:
1>------ 已启动生成: 项目: HelloMSG, 配置: Debug Win32 ------
1>生成启动时间为 2020/12/28 0:58:52。
1>InitializeBuildStatus:
1> 正在创建“Debug\HelloMSG.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
1>ClCompile:
1> main.cpp
1>LINK : fatal error LNK1123: failure during conversion to COFF“c:\users\administrator\documents\visual studio 2010\Projects\HelloMSG\Debug\HelloMSG.exe”
1>
1>生成失败。
1>
1>已用时间 00:00:01.96
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
看到提示了没有,失败1个,报错是Link1123或link1104,那么解决方案是什么?
程序编译报错解决方案
查了度娘,结果居然是在CSND上找到的方案
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe的程序版本比较老。
版本号如下:
看到了吧,版本号是10的大版本,OK,再看一下.net的版本:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe
看到版本是12大版本号,解决方案就是把旧的版本号直接重命名为cvtres-old.exe
好吧,问题解决了!
对话框的程序编译
#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nShowCmd)
{
int ret = 0;
ret = MessageBox(NULL,TEXT("消息弹出窗口!"),TEXT("消息"),MB_YESNOCANCEL|MB_ICONASTERISK);
if(ret == IDYES)
{
MessageBox(NULL,TEXT("你选择了YES"),TEXT("提示"),MB_OK);
}
else if(ret == IDNO)
{
MessageBox(NULL,TEXT("你选择了NO"),TEXT("提示"),MB_OK);
}
else
{
MessageBox(NULL,TEXT("你选择了cancel"),TEXT("提示"),MB_OK);
}
return ret;
}
问题解决了,又出新问题
这个问题明天再解决,其实解决问题就是在不断进步的一个过程,等把问题都解决的差不多,水平会不断提高,学习和进步都是这样,如果问题搞不定,那么问题就会再次出现,问题搞定你。
上问题:
···
1>------ 已启动生成: 项目: HelloMSG, 配置: Debug Win32 ------
1>生成启动时间为 2020/12/28 1:26:46。
1>InitializeBuildStatus:
1> 正在对“Debug\HelloMSG.unsuccessfulbuild”执行 Touch 任务。
1>ClCompile:
1> 所有输出均为最新。
1>ManifestResourceCompile:
1> 所有输出均为最新。
1>LINK : fatal error LNK1104: 无法打开文件“C:\Users\Administrator\documents\visual studio 2010\Projects\HelloMSG\Debug\HelloMSG.exe”
1>
1>生成失败。
1>
1>已用时间 00:00:00.31
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
···