用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

学习目标

用VS的命令行工具cl.exe,linker.exe等编译连接windows API程序和MFC程序。

编译链接Windows API程序

  1. 设置环境变量,找到cl.exe,link.exe的文件路径添加到系统变量Path中。
    控制面板——系统和安全——系统——高级系统设置——环境变量
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  2. 选择用户变量的Path和系统变量的Path分别编辑。

  3. 选择新建,把cl.exe,link.exe的文件路径添加进去。(不含文件名本身)
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  4. 在用户变量里新建INCLUDE环境变量,路径为你INCLUDE文件位置
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  5. 在用户变量里新建LIB环境变量,同上
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  6. 然后cmd,结果不行。然后百度,找到了为啥不行。是因为库和头文件并不全位于上述路径,其他的文件位于与Microsoft Visual Studio同目录的Windows Kits下。

  7. 找到缺少的库和头文件然后再添加到INCLUDE和LIB变量里,就行了。
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  8. 找到需要编译的Windows API程序的源程序,然后在那个界面输入cmd,终端里输入cl,就会出现一个win.obj。
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  9. 生成OBJ文件后,打开项目属性
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  10. 复制附加依赖项用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  11. 编译完成
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  12. 输出结果
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

编译链接MFC程序

  1. 使用命令cl /c /D “UNICODE” /EHsc First_MFC.cpp

用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  1. 编译成功
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

  2. 再编译剩下的两个.cpp文件,生成更上面一样的3个OBJ文件,原理相同,将3个obj文件link在一起

  3. 输出结果
    用VS的工具cl.exe,linker.exe编译连接windows API程序和MFC程序

总结

令人头秃,环境配置弄了半天,百度半天,总算一点点的弄好了。总的来说,百度是真的好用,同学是真的好用。

参考文献

薛钦亮的博客
浑水摸鱼1的博客