
Windows
文章平均质量分 74
witton
这个作者很懒,什么都没留下…
展开
-
IDM 6.42 Build 22激活
IDM 6.42Build22激活原创 2024-10-12 15:47:00 · 3109 阅读 · 5 评论 -
虚拟机中安装Win98
Win98是微软于1998年发布的16位与32位混合的操作系统,也是一代经典的操作系统,期间出现了不少经典的软件与游戏,还是值得怀念的。为此笔者本文就介绍一下在VMWare中以及Qemu中安装Win98。原创 2024-03-10 17:36:44 · 4854 阅读 · 0 评论 -
VSCode使用Makefile Tools插件开发C/C++程序
提起Makefile,可能有人会觉得它已经过时了,毕竟现在有比它更好的工具,比如CMake,XMake,Meson等等,但是在Linux下很多C/C++源码都是直接或者间接使用Makefile文件来编译项目的,可以说Makefile是基石。另外,针对C++ 20的一些特性,像比较流行的CMake工具,目前支持还不完善,如果想要尝鲜C++ 20的一些新特性,比如Module,目前最好是使用Makefile比较方便。,在其后点笔那个的图标按钮,则会弹出所有目标,生成目标如下,选择。在工作区编写一个C++文件,原创 2024-01-18 17:23:20 · 13352 阅读 · 2 评论 -
解决Windows下VSCode控制台乱码问题
我们在Windows使用VSCode编写C/C++程序时,如果代码中的中文字符串使用的是UTF8编码,且代码内没有设置控制台的输出编码,或者编译时没有指定运行时编码(GCC可以在编译时使用。插件,不过该插件是直接使用的Windows的控制台,Windows控制台默认是使用的GBK编码,代码输出UTF8编码的字符串就会出现乱码。clang目前只能是utf-8),则在调试或者运行时,VSCode控制台输出的中文字符可能会为乱码。,这样VSCode中启动的控制台全部会使用UTF8编码输出。原创 2024-01-18 15:36:08 · 2696 阅读 · 0 评论 -
将MSYS2 MinGW集成到Windows终端
集成MinGW到Windows终端原创 2023-06-05 18:00:24 · 2474 阅读 · 0 评论 -
VS2022编译安装Qt6.5源码
VS2022下编译安装Qt6.5源码原创 2023-05-11 21:19:39 · 3595 阅读 · 6 评论 -
提取Windows中系统自带的图标资源
提取Windows自带的图标资源,提取DLL/EXE中的资源。原创 2023-05-05 17:05:09 · 8361 阅读 · 1 评论 -
解决:git repository path ‘XXX‘ is not owned by current user
Git副本出现repository path is not owned by current user,如何解决?原创 2023-03-23 17:19:31 · 9667 阅读 · 4 评论 -
Windows下的高效网络模型IOCP完整示例
IOCP即完成端口(I/O Completion Port),与Linux下的epoll一样,是一种非常高效的网络模型。原创 2023-03-23 14:21:40 · 1076 阅读 · 0 评论 -
MiniDump不生成或者生成0字节
通过分析发现是另一个线程在退出时出现了宕机,但是主线程退出时还没来得及调用或者未完全调用完生成MiniDump文件,整个进程就结束了。简单粗暴的方法就是主函数退出前休眠一段时间,让异常处理程序有充分的时间生成MiniDump。今天的MiniDump却不能正常工作,在ExceptionFilter函数中打日志,时而有输出,时而没输出,有输出都是在函数开头的日志有输出,后面的就没输出了。今天在使用C写一个Windows多线程程序时,发现退出过程中有段错误,为了方便快速的定位问题,我使用了MiniDump。原创 2023-03-22 18:30:51 · 1763 阅读 · 4 评论 -
使用QEMU+GDB调试操作系统代码
最近在写一个玩具操作系统,在编写过程中,经常需要进行代码调试。平常我们在Windows或者Linux下编写应用程序时,可以使用像VS,GDB等等这些调试工具进行调试,但是现在要调试的不是应用程序,而是操作系统本身。介绍了如何使用Bochs模拟器来调试操作系统代码,本文接着介绍如何使用QEMU模拟器+GDB来调试操作系统代码。...原创 2022-08-18 22:02:29 · 1653 阅读 · 0 评论 -
使用Bochs调试操作系统代码
最近在写一个玩具操作系统,在编写过程中,经常需要进行代码调试。平常我们在Windows或者Linux下编写应用程序时,可以使用像VS,GDB等等这些调试工具进行调试,但是现在要调试的不是应用程序,而是操作系统本身。本文就介绍一下如何使用Bochs模拟器来调试操作系统代码。...原创 2022-08-18 21:50:26 · 3724 阅读 · 0 评论 -
在MinGW中构建GCC交叉编译器和GDB交叉调试器
前文《C语言使用MinGW中的GCC生成平面(flat)二进制文件》中有介绍MinGW中使用GCC生成编写操作系统内核所需要的32位平面(flat)二进制文件。但是如果想要在Loader中使用C语言,即编译16位的汇编与C混合代码,就必须使用ELF格式才能转换成16位平面(flat)二进制文件。MinGW默认的GCC只能生成PE文件,不能生成ELF文件,而pei-386是无法转换成16位平面(flat)二进制文件的。如果在link.ld中使用,会报错:使用使用,则会报:所以为了能使用MinGW编译16位原创 2022-07-06 18:51:38 · 2141 阅读 · 2 评论 -
C语言使用MinGW中的GCC生成平面(flat)二进制文件
最近抽空在看自制操作系统相关的书籍,比如《自己动手写操作系统》、《Orange’S:一个操作系统的实现》、《一个64位操作系统的设计与实现》、《30天自制操作系统》等等,只有《30天自制操作系统》是可以完全在Windows下编译、链接、生成镜像的(使用的自制的非标准工具),其它几个全部都是在虚拟机中安装Linux系统,在Windows下编写源码,Linux下进行源码的编译链接,然后生成镜像。这就导致需要在Windows与Linux之间来回切换。笔者尝试改写书中Makefile,用于MinGW环境下完全编译链原创 2022-06-30 18:41:49 · 1310 阅读 · 0 评论 -
Windows中使用nginx搭建WordPress
前面的博客容器中搭建WordPress介绍了在容器中搭建WordPress,如果使用的是Windows环境而不是Linux,则可以使用Windows版的nginx来搭建WordPress。根据WordPress的安装要求,需要准备以下软件环境:PHP版本7.3+以上MySQL版本5.6+或者MariaDB版本10.1+以上一、下载必需软件1. PHP目前最新的PHP为PHP 8.1,可以根据自己的系统选择安装不同的版本,这里笔者选择的是VS16 x64 Thread Safe。2. 数据库原创 2022-05-28 21:07:25 · 2201 阅读 · 0 评论 -
Windows10配置使用极点五笔输入法
在Windows下,笔者一直以来都是使用的五笔输入法,使用过王码五笔,万能五笔,极品五笔,极点五笔等等,在使用了极点五笔输入法后,就一直钟情于它,再没换过。由于极点五笔不再更新,对Win10的支持不是太好,主要原因是极点五笔是使用IMM接口实现的,而Win10使用了新的TSF框架接口。Win10系统中倒是有一个微软五笔输入法,使用了一段时间,感觉不好用,与极点五笔输入法的使用体验相差太大。在Win10上使用了一段时间微软五笔后,还是非常怀念极点五笔输入法的,Win10更新到21H2版本后,又安装上了极点原创 2022-04-26 16:45:04 · 13170 阅读 · 5 评论 -
使用容器编排对go项目进行部署、调试
文章目录一、环境配置二、部署1、编写Dockerfile2、编写容器编排文件3、设置Goland部署配置4、执行部署三、调试1、编写Dockerfile2、编写容器编排文件4、设置Goland部署配置在项目开发中,可能我们需要开发多个服务程序协同工作,比如游戏中的网关服,登录服,世界服,数据库服等等。在容器技术出来以前可能需要写一个脚本程序来启动一组服务。随着容器的出现,特别是容器编排的技术的出现,我们可以直接使用容器编排来进行部署。笔者以Go项目为例,介绍如何在Goland中对项目各个服务进行容器的编原创 2022-01-11 18:03:29 · 935 阅读 · 0 评论 -
wsl2设置静态IP
WSL2每次启动后的IP都不固定,如果需要一个固定的IP,需要做一些设置,可以创建一个批处理文件,比如:E:\Ubuntu\ubuntu_static_ip.bat,内容如下:@echo off%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exitwsl -d Ubuntu-20.04 -u root原创 2022-01-09 11:20:42 · 5507 阅读 · 9 评论 -
解决退格键在MinGW的vim中不起作用的问题
MinGW下的vim在默认情况下会与Linux下的vim不太一样,比如MinGW中默认的vim配置,退格键(backspace)就不起作用。如果退格键不起作用(不管是MinGW、MacOS,还是Linux),一般都是配置问题导致,可以自行配置backspace功能。当Vim启动时,会检查名为.vimrc的文件是否存在,如果找到了该文件,则会在启动时自动加载其内容作为配置。通过将喜爱的配置保存到.vimrc文件中就可以让Vim在启动时自动应用这些配置。Vim会在许多地方查找.vimrc文件(参见:h vi原创 2021-09-25 15:21:32 · 774 阅读 · 1 评论 -
本地Git硬重置后找回原来的提交
有些时候我们在做一些开发工作时,可能会用到本地Git管理,即在一个目录中进行开发,并将这个目录作为Git的版本库目录。本文以Windows下安装了TortoiseGit为例进行说明。将任意一个空目录作为工作目录,在右键中选择“Git 在这里创建版本库”然后在弹出的对话框中直接点击确定,不勾选“制作纯版本库(没有工作目录)”然后我们就可以在工作目录进行相应的工作了。假设我们有三个提交了,这些都是在本地Git中,没有远程Git。此时,工作目录中有如下三个文件。然后由于某种需要将版本重置到原创 2021-08-31 11:38:10 · 1578 阅读 · 1 评论 -
VSCode配置PHP Debug插件调试PHP
前段时间项目中有写点PHP页面的需求,架设了一个PHP的运行环境,参见博文:Windows下使用Apache2.4架设PHP服务器。如何调试PHP,一直是一件麻烦事,以前还有研究过一下使用Zend Studio 5.5来调试,但是后面的版本是与Eclipse集成了,感觉不好用,也一直没再研究过,直到前段时间有用到PHP,才再思考如何调试PHP。VSCode的出现像一匹黑马一样,击败其它编辑器,成为程序员的编程利器。下面就以Windows平台为例,介绍一下如何在VSCode中配置PHP的调试开发环境。一、原创 2021-07-01 18:03:15 · 6038 阅读 · 7 评论 -
Windows下使用Apache2.4架设PHP服务器
项目最近需要写几个PHP的Web页面,为了方便测试,需要在Windows本机架设一个PHP的环境。项目中原来使用的Apache来架的PHP,由于只是用于开发时的简单测试,没必要使用WAMP套装,直接下载一个Apache和PHP来进行配置。一、下载Apache的httpd打开https://httpd.apache.org/也可以直接打开Windows版本的下载页面:https://www.apachehaus.com/cgi-bin/download.plx从上面两个Download中任选一个进入原创 2021-05-28 17:21:14 · 1539 阅读 · 4 评论 -
C语言随机数
昨天项目中遇到随机数相关的问题,其实并不是问题,只是没有使用对。项目中使用的自己写的类似C语言的rand()的伪随机函数,但是种子设置有点问题,所以出现了两次战斗有绝大部分相同结果的问题。C语言的rand()函数在使用前需要使用srand()函数来设置随机种子,这样才不会出现相同的随机序列。rand()函数的取值范围为[0,RAND_MAX],Windows下的RAND_MAX为32767。实际应用中,我们可能需要生成范围大于RAND_MAX的随机数,直接使用rand()函数就无能为力了。其实把rand原创 2020-10-21 11:58:01 · 452 阅读 · 0 评论 -
解决Windows照片查看器加载慢和颜色问题
在Windows中,如果使用了“较准颜色”向导进行系统显示颜色的较准,则可能会导致使用照片查看器查看照片时加载很慢。如果不进行颜色的较准那可能会导致照片查看器在查看照片时颜色不正常,比如发黄。如果使用了“较准颜色”向导进行系统显示颜色的较准,则系统会生成一个CalibratedDisplayProfile-0.icc文件,文件名中的数字0也可能是其它数字,比如1,2,存放在\Windows\System32\spool\drivers\color\目录。解决方案:1.删除前面颜色较准生成的Cal原创 2020-09-19 17:59:24 · 5832 阅读 · 0 评论 -
解决在HD Audio模式下Windows系统前置面板耳机无声音的问题
笔者的台式机是10年前的电脑了,我记得在BIOS中不管是设置Front Panel Select为AC97还是HD Audio,前置面板插入耳机都是有声音的,只是使用AC97的话,默认情况下就可以听到声音,而设置HD Audio的话需要在系统中作点设置。前段时间重装了系统,而BIOS中还是之前设置的HD Audio,使用前置面板插入耳机没了声音。一时忘记了原来是怎么设置的,现在弄好了,记录一下:在Realtek高清晰音频管理器中的插孔设置中勾选一下“禁用前面板插孔检测”,点确定即可。...原创 2020-09-18 22:49:25 · 5302 阅读 · 0 评论 -
MSYS Makefiles、 MinGW Makefiles与Unix Makefiles的差别
我们在*nix或者Mac系统中做开发会经常使用Makefile来组织构建规则,然后使用make来构建项目。Makefile可以手动编写,也可以使用工具生成。生成Makefile的工具还是比较多的,目前比较常用的跨平台的Makefile生成工具要算CMake了。CMake非常强大,可以生成很多类型的Makefile或者工程文件,可以通过下面的指令来查看具体的可生成的文件。cmake --help随着Mingw、MSYS2、cygwin这些Linux移植系统在Windows上的出现,Windows上也原创 2020-08-28 15:44:51 · 2987 阅读 · 0 评论 -
使用msys2 mingw64编译gcc
我们在msys2中使用pacman安装的GCC默认是不能显示中文帮助的而Linux下是可以显示中文的:这是因为在编译msys2 Mingw在编译GCC时,是没有打开–enable-nls开关的为了让其可以显示中文,可以尝试自己编译GCC。首先从https://github.com/msys2/MINGW-packages下载mingw-w64-gcc目录中的所有文件,放到一个目录mingw-w64-gcc中或者其它目录中,但是路径中不能包含中文。修改PKGBUILD文件,将–disa原创 2020-08-27 16:21:57 · 2877 阅读 · 0 评论 -
.dll、.lib、.a的转换
一、.dll生成.a在使用Mingw进行开发时,有时依赖的库只有.dll文件,而Mingw需要的是.a文件,这时就需要通过.dll文件生成一个.a文件。以libmysql.dll为例,说明如何生成libmysql.a:gendef libmysql.dlldlltool -d libmysql.def -D libmysql.dll -l libmysql.a -k第一条命令会生成一个libmysql.def文件供第二条命令使用。第二条命令使用前面生成的def文件以及dll文件生成.a文件并把原创 2020-08-21 15:00:57 · 11805 阅读 · 5 评论 -
Windows控制台中文乱码问题测试、分析与解决
随着Visual Studio占用的空间的越来越大,有很多东西也许我们根本就用不上。而VSCode + msys2 + Mingw也许是一个不错的选择,编写控制台类应用程序完全是可以的。但是控制台类应用程序内的中文输出会有一些问题,可能会产生乱码。下面笔者以VSCode 1.48.0+msys2+Mingw64+gcc 10.2.0为基本环境测试在Win10与Win7下的情况。一、测试A、Win10系统如果是在Windows 10 October 2018 Update (build 1809)及以原创 2020-08-18 22:32:24 · 6754 阅读 · 0 评论 -
Windows下添加msys2-MinGW到右键菜单
Windows下使用msys2-Mingw进行程序开发或者Shell操作是相当不错的一种选择,比Windows自带的cmd或者PowerShell好用得多,最主要的是与Linux有一致的使用体验。但是当我们在GUI界面进入某个目录时,如果想要让Mingw进入这个目录就有点麻烦,要先打开MinGW Shell然后手动输入路径才能进入。如果能在右键菜单中集成一个命令直接进行该目录是不是会方便很多?如果安装过Git的朋友一定见过或者使用过Git的“Git Bash Here”。为了实现这样一个功能,我们需要原创 2020-08-15 20:12:11 · 1570 阅读 · 0 评论 -
VMWare中的Linux加载主机的共享目录
在VMware虚拟机中安装的Linux,有时想与主机进行文件共享,可以通过安装VMware Tools工具,然后在虚拟机设置的选项中添加共享文件夹,如图所示:然后就可以在Linux中看到共享的目录了:但是也有可能重新启动后不能正常显示,我在Centos8中就遇到。可以通过下面的命令来手动加载:sudo vmhgfs-fuse /mnt/hgfs -o allow_other -o nonempty后面的参数:-o allow_other 是允许其他用户也可以访问-o nonempty 允原创 2020-06-24 16:41:41 · 897 阅读 · 0 评论 -
GDB直观调试STL
在Linux项目开发过程中使用命令行GDB进行C++程序STL调试时,会发现输出的内容很杂乱,真正有用的信息比较难找。可以从GCC、Clang的官网下载一个GDB的美化插件:Clang的libcxx可以从https://github.com/llvm/llvm-project/blob/master/libcxx/utils/gdb下载整个libcxx目录GCC的libstdc++可以从ht...原创 2019-11-21 18:43:23 · 1489 阅读 · 2 评论 -
VisualGDB可视化调试STL
本文中的VisualGDB开发调试环境为Visual Studio 2015加VisualGDB 5.4R12版本,并且使用了笔者改进过的STL可视化调试库CSTLTypeVisualizer.dll,原版的STLTypeVisualizer.dll不支持字符串转码,不支持Clang的STL调试。一、 Windows项目VisualGDB的Windows项目可以使用MinGW或者Cygwin作...原创 2019-11-19 12:01:35 · 1021 阅读 · 0 评论 -
Visual Studio 清单(manifest)导致的问题
前些天把一个项目从XP 32位平台拿到Win7 64位平台去编译运行,用VS2008按Win32的方式编译连接都通过,但是一运行就报错,说是找不到msvcr90.dll,编译的DEBUG版本,也会调用msvcr90.dll?把项目中的每个工程配置中的“代码生成”中的“运行时库”由“多线程DLL(/MD)”设置成“多线程调试DLL(/MDd)”,一编译运行还是报同样的错。 从VS2005开原创 2011-11-17 12:10:03 · 2087 阅读 · 0 评论 -
很幽默的讲解六种Socket I/O模型
本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件转载 2011-11-28 14:24:26 · 652 阅读 · 0 评论 -
浅析网络编程之Socket模型
Winsock 的I/O操作 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字 默认为阻塞模式。可以通过多线程技术进行处理。 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错转载 2011-11-28 14:29:41 · 1355 阅读 · 0 评论 -
Win32调试API原理
来自《软件技术加密内幕》和chm版本不太一样 在Win32中自带了一些API函数,它们提供了相当于一般调试器的大多数功能,这些函数统称为Win32调试API(Win32 Debug API)。利用这些API可以做到加载一个程序或捆绑到一个正在运行的程序上以供调试;可以获得被调试的程序的底层信息,例如进程ID、进入地址、映像基址等;甚至可以对被调试的程序进行任意的修改,包括进程的内存、线程的运行转载 2012-01-13 11:23:32 · 667 阅读 · 0 评论 -
Visual Studio中使用NASM编译汇编文件
NASM相对MASM和GAS而言,是一款比较中庸的汇编器,它语法简洁、功能强大,而且跨平台、免费,是外联汇编的不错选择。 使用Visual Studio开发项目时,如果需要外联NASM汇编,可以使用VS中集成的功能进行设定,让它自动编译相应的汇编文件。在VS2005以前的版本中,可以使用“生成事件”来设置汇编文件的编译工作;在VS2005及以上版本中,可以使用“自定义生成规则”来设定。这原创 2012-07-12 11:00:36 · 5194 阅读 · 0 评论 -
如何在不安装VC2008发布包的情况下,发布VC2008生成的程序
在前面的Blog中有提到,VS2005及以上版本的程序发布与之前版本有一个差别就是清单文件,这个清单文件包含了运行此应用程序所需要的一些文件配置信息,如平台,版本等等,这个清单文件可以内嵌在应用程序中,也可以单独存在。在应用程序运行时就会根据这个清单文件去找相应的依赖文件,默认首先是查找系统目录下的WinSxS目录,如果找不到会在应用程序所在目录去查找。 如果运行程序所在的机器上没有安装原创 2012-08-08 09:54:41 · 1495 阅读 · 0 评论 -
在Visual Studio调试器中显示Unreal的数据类型的值
在Unreal引擎中大量使用了自定义的数据类型如:FName,FString,TArray等等,对于这些自定义的数据类型,我们无法直接查看到这些数据的值,但是我们可以编写VS中的autoexp.dat文件中的脚本,来达到我们需要在调试器中显示的方式。 由于在VS2003中的autoexp.dat脚本不支持表达式,而无法全部满足我们对Unreal引擎中自定义的数据类型的调试显示。经过研原创 2010-10-31 17:07:00 · 2624 阅读 · 0 评论