无法打开源文件 ctype.h和.exe 进行写入

6 篇文章 0 订阅

以前在win7的时候遭遇过这个问题,版本是VS 2015,记得是需要手动添加附加包涵目录和链接包含库目录,所以算是轻车熟路吧!不过今天解决完无法打开源文件后却遭遇了exe进行写入的锁定了,索性看看能够发生些什么怪事,都一并记录下来。


文章原出处: https://blog.csdn.net/haigear/article/details/129625891

1、有可能是windows sdk不一致导致

在cmd模式下查看你的windows,再进入Visual studio installer中查看你的windows 10 SDK,版本是否一致,或者接近,可能这也是导致问题的原因。
在这里插入图片描述
在这里插入图片描述
检查并配置好,一般你在visual stuido installer中配置后,再进入VS 就会自动弹出一个对话框让你配置好你的windows SDK。
在这里插入图片描述
如果不是那就老办法,添加附加包涵目录和链接库

2、在c/c++ 的常规中添加附加包涵目录

整完上面的我们继续添加包涵目录,解决包文件找不到的问题,一般直接拷贝过来即可
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt
在这里插入图片描述

3、为链接器配置附加库目录

这个时候运行则会好很多了,只有一个lib没找到了
在这里插入图片描述

这个时候我们在链接器的常规下找到“附加库目录”,为其增加下面的话:一般来说都是这个目录。当然,你的win10版本或VS2022的小版本不同,目录的数字部分不同。
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64
在这里插入图片描述
配置完上面的再次编译运行就畅通无阻了。

4 、遭遇“ .exe 进行写入”

这个时候是因为你的程序进入了运行锁定状态,解决起来说容易也容易说不容易也不容易。先说容易的情况,如果你的进程可以在任务管理器中找到,直接终止它即可(可惜我运气不好,没有在任务管理器中发现它的任何踪迹)。
如果找不到呢?那就重启机器,然后回来在项目的debug中目录中彻底清除这个目录。
请记住,仅仅重启VS是不够的!直接跑到debug中删除你会发现删除不了,那就是被锁定了。
在这里插入图片描述
重启完成后,回到项目的debug目录则可以正常删除了。重新编译,没问题了。

5、后话

我们一般都会安装几个版本的VS,或许是因为项目维护或者迁移的问题。为什么其他的版本好好的,单单在2022上面出现这样的问题呢?两个问题没有明白
1、为何单独发生在2022版:查看其他版本的VS并没特别对链接器包含库及c++的附件包含目录进行特别的配置,唯独在2022上发生。
2、为何大多数人不会遭遇这个问题:是windows 10的小版本不同还是VS2022的小版本不同,还是安装什么其他软件导致环境变化了?

明白的大佬望不吝赐教,留言告知,感激!

码字不易,转载注明出处:https://blog.csdn.net/haigear/article/details/129625891

最后:如果大家的vs没有什么珍贵的配置好了的参数和资源,卸载vs后重新安装是最直接解决上述问题的最简方案。以上方案都是在不得以的情况下才选择的。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
从键盘输入一个长度不超过100个字符的字符串,然后做如下操作: (1)将字串中的小写字母转为大写,大写字母转为小写,而其它字符不作处理。(2)将字串输出保存到一个名为“ex801.txt”的文本文件中。注:文本文件ex801.txt应与源码文件ex801.c保存在同一个文件夹中。目前,已编写完成main函数,请用C++编程实现writeToFile函数,具体功能和要求如下所示。/* @Filename: ex801.c @Author: 鞠成东 @Version: 1.0 @Date: 2021-03-18 @Description: 文件字符读写 / #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc,char argv[]){ /(1)声明函数及变量/ int writeToFile(char str, char fileName, char mode); char str[100]; char fileName[] = “ex801.txt”; /(2)获取键盘输入字串/ fgets(str, 100, stdin);得到(str);将回车看作字串输入结束标志,字串中可以有空格 //scanf(“%s”, str);将空格看作字串输入结束标志,字串中不能有空格 /(3)将字串写入文件*/ int charNum = writeToFile(str, fileName, “w”);if(charNum < 0){ //printf(“write error”);//用于调试 return -1; } return 0;} /* * 函数名称:writeToFile * 函数功能:将字串写入文件 * 形式参数:char *str,一维字符数组(字符串)首地址 * 形式参数:char *fileName,待写入的文件路径及名称 * 形式参数:char *mode,文件使用方式 * 返 回 值:int型,若文件打开异常,返回 -1;否则返回写入到文件的字符数 */ int writeToFile(char *str, char *fileName, char *mode){ // 请编程实现本函数 } 其他说明:无 【源文件名】ex801.c 【输入形式】标准输入:从键盘任意输入不超过100个字符的字串 【输出形式】文件输出:将字串转换后输出到文件
05-24

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河西石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值