
问题解决
caz28
C是俺吃饭的家伙,C++也偶尔用用,Python是我最喜欢用的脚本。
本人一直从事嵌入式开发,喜欢尝试新鲜技术,希望与热爱编程的朋友共同交流进步。
展开
-
UNICODE已定义,_tcs*函数却不是宽字符函数问题
一个比较大的项目,CMake里定义了UNICODE,调用Windows的API也是用W的版本。所以如果在CMake文件里定义UNICODE,在Windows下会出现这种矛盾,使用的是宽字符API,tchar函数却是多字节版本。所以CMake文件里,如果需要区分Unicode字符集或多字节字符集,只需要添加或不添加_UNICODE定义即可。可以看到定义了_UNICODE,UNICODE会自动定义,_MBCS自动去掉定义。从前面看,只定义UNICODE,会产生奇怪的情况,代码用的字符集是多字节字符集。原创 2024-10-06 23:16:37 · 263 阅读 · 0 评论 -
ifstream::tellg() 返回-469
使用过程中发现,tellg()返回的位置,有时有效,有时无效,第一次是返回0,后面文件有输入后,再次读取前,调用tellg(),有时返回-469,有时返回正的位置。一个程序输出一个文件,另一个程序打开这个文件,读入内容。读入过程中,需要记录读取位置,使用tellg()获取读取位置, 以便后面用seekg重新定位读取。经过多次摸索,结合网上搜索,发现windows下,ifstream只有用二进制模式打开文件,tellg才能返回正确的位置。原创 2024-02-01 01:50:12 · 476 阅读 · 1 评论 -
signtool.exe在哪里?
今天编译代码用到signtool签名,signtool.exe不在path环境变量里,看网上说安装Windows SDK 就会安装signtools,安装了Windows SDK,还是没有找到。这个bin目录下有多个sdk版本,每个版本都有x86和x64,里面都有signtool.exe, 都可以用。以后找sdk的东西,要到Windows Kits目录里找。原创 2023-12-20 19:42:08 · 1208 阅读 · 0 评论 -
Windows编译动态库没有生成.lib文件问题
最近修改了一个项目,以前生成静态库,后改为生成动态库,在Linux上没有问题,但在Windows上只生成了.dll文件,没有生成.lib文件。后来找到原因,代码里没有dllexport声明,没有东西导出,所以才没有生成.lib文件。文件除了可以用作静态链接库外,还有另一种用途,就是用作动态链接库(这样就跟Linux一样,类和函数全导出了。在Windows中,原创 2023-12-12 13:40:45 · 1911 阅读 · 0 评论 -
system在client端运行正常,在server端运行失败问题
在windows上,不切换盘符,cd是不能到达对应目录的。server端运行的环境不同,默认在c盘,client端运行时,正好在d盘。使用system(command.c_str()), 同样的command,在client端运行正常,在server端运行却失败。原创 2023-08-17 14:54:36 · 139 阅读 · 0 评论 -
VMware虚拟机设置共享文件夹丢失问题
最近在用VMware,装了几个虚拟机后,发现第一次设置好共享文件夹,是可以用的,虚拟机里/mnt/hgfs/目录下有共享文件夹挂载。关闭虚拟机,再打开,就没有了,虚拟机设置里还有共享文件夹 的设置,删除了,再设置也没有用。CentOS,Ubuntu,麒麟等操作系统都试过,都有这个问题。我用的VMware是官网下的免费版,不知道付费版本是不是这个问题。在网上搜,发现应该是VMware Tools不能自动挂载共享文件夹问题。以后每次开机都能加载了。原创 2023-08-01 21:53:18 · 1290 阅读 · 1 评论 -
列出make中的所有目标
用下面命令可以列出make中的所有目标,测试可用。原创 2023-07-17 14:47:20 · 823 阅读 · 1 评论 -
Windows - 如何判断一个DLL已经注册
如果返回0个匹配,则没有注册,有匹配,则注册过了。通过上面两个命令,可以验证一下。原创 2023-07-17 14:35:19 · 2835 阅读 · 0 评论 -
cmake在linux上实现PRE_BUILD功能
同一个cmake文件,在VS上是可以实现PRE_BUILD功能的,在linux上编译则没有执行到,不起作用。修改CMakeLists.txt后,下面的实现,可以linux编译时也能执行到。原理就是通过两次string替换,把文件名里的分隔符替换成下划线,用文件名做custom target,然后添加dependencies,这个temp_target就会执行到了。之所以用文件名做custom target,是因为这段在一个function里,会多次调用,不能用固定的target名字。原创 2023-06-27 23:57:46 · 426 阅读 · 0 评论 -
麒麟系统鼠标滚轮不能实现页面滚动
刚用麒麟V10,发现有滚动条的页面,滚动鼠标滚轮不能控制页面滚动。修改“设置”-“设备”-“鼠标”-“滚轮速度”,设置个合适的速度,就可以了。不过这个速度设置很难用,最低几乎不动,滚几下,才动。动一下也不是一行,而是多行,可能是没有适配各种分辨率屏幕。原创 2023-06-27 09:10:15 · 2597 阅读 · 0 评论 -
VS中C++程序报错:应输入声明
一个头文件,从别的项目copy过来的,某个地方有个红线,提示“应输入声明”,代码很简单,没看出什么问题,就随便输入点东西,再删除,错误消失了。原因不明,不过这个头文件肯定没有问题。原创 2023-03-07 21:21:45 · 4780 阅读 · 1 评论 -
需要使用新应用以打开此ms-gamingoverlay链接
ms-gamingoverlay原创 2023-02-10 14:32:27 · 15617 阅读 · 0 评论 -
支持WIN7的VSCode版本
支持WIN7的VSCode版本原创 2022-12-11 00:31:51 · 25355 阅读 · 2 评论 -
Stack overflow
C++代码,运行时遇到以下错误:0x00007FF6243498F7 处有未经处理的异常(在 Project29.exe 中): 0xC00000FD: Stack overflow (参数: 0x0000000000000001, 0x0000009DE0A13000)。原因:调用的函数里,有个很大的数组,导致栈溢出了。解决:数组改为指针,new一块内存使用,最后要记得delete[] 。...原创 2022-04-23 08:25:52 · 861 阅读 · 0 评论 -
nvidia-smi.exe路径
以前安装nvidia的显卡驱动,nvidia-smi.exe的路径是:C:\Program Files\NVIDIA Corporation\NVSMI最近更新了一下显卡驱动,找不到nvidia-smi.exe,上面路径里是空的。后来找到了:C:\WINDOWS\system32里面也有nvml.dll等动态库。新的驱动这样搞的好处是,可以直接运行nvidia-smi了,以前都要设置路径。C:\WINDOWS\system32\driverstore\FileRepository\nvl原创 2022-01-10 22:44:05 · 5144 阅读 · 0 评论 -
一个偶现bug排除
一个bug,程序大多数时候都好的,但每天会遇到几次crash。先是锁定发crash的调用,对调用里可能出问题的地方,加log。根据log锁定发生crash的函数,加log。找到crash直接原因,函数里使用的静态变量,在crash时有异常。在该静态变量前后加了同类型类似名称的静态变量,crash时它们也有异常。判断应该是静态变量内存被破坏了,应该是别的静态变量访问越界导致。在调试中发现,调用另一个函数后,再调用上面函数,crash必现。后面就好办了,在另一个函数里,有个buffer是个char原创 2021-10-27 19:30:24 · 355 阅读 · 0 评论 -
internal compiler error 问题
c++项目,编译报internal compiler error错误,再次编译通过。原因:make -j,没有限定线程数。解决:make -j8 test限定线程数,声明目标,避免编译非依赖目标。原创 2021-07-15 18:52:00 · 3401 阅读 · 0 评论 -
command not found: shopt 问题
新建的用户,发现执行/etc/bash.bashrc提示command not found: shopt.原因:新建的用户,shell是dash,改为bash,问题就解决了。简单方法:修改/etc/passwd,在对应用户名的用户主目录后面,添加:/bin/bash原创 2021-07-15 18:45:29 · 5217 阅读 · 0 评论 -
g++编译错误
编译出现类似如下错误:/usr/bin/ld: ../../xxx/xxx.a(xxx.o): undefined reference to symbol '_ZNKSt9basic_iosIcSt11char_traitsIcEE4failEv@@GLIBCXX_3.4'//lib/x86_64-linux-gnu/xxxxxx.so.2: error adding symbols: DSO missing from command line将/usr/bin/g++ -> g++-7,问原创 2021-05-21 15:23:09 · 720 阅读 · 0 评论 -
citrix 虚拟桌面中使用PSFTP问题
在虚拟桌面中,使用PSFTP,想切换本地路径到D:\,提示:psftp> lcd d:\lcd: unable to change directory: 系统找不到指定的路径。虚拟桌面里只有c:,真实电脑的c盘和d盘对应\\Client\C$和\\Client\D$。所以要lcd \\Client\D$就可以正确切换本地目录了。如果要查看这个目录的内容,需要!dir \\Client\D$因为没有ldir这个命令。...原创 2021-04-09 15:57:40 · 209 阅读 · 0 评论 -
那些常见的GB2312码
占位符U+FFFD 0xEFBFBDEFBF锟BDEF斤BFBD拷BOMU+FEFF 0xEFBBBFEFBB锘BFEF匡BBBF豢VC相关的:CCCC烫CDCD屯看到CCCC,想看看连号的码有哪些:AAAA没有BBBB换CCCC烫DDDD葺EEEE铑FFFF没有原创 2020-10-19 11:34:59 · 261 阅读 · 0 评论 -
编译问题
relocation R_X86_64_32 against `.rodata' can not be used when making a PIE object; recompile with -fPIC在Ubuntu上编译遇到上面问题,这个提示,没有任何价值,不要被误导。解决方法:在本机重新编译一下用的.a文件,再编译链接就过了。...原创 2020-09-07 14:21:59 · 585 阅读 · 0 评论 -
联想笔记本自动升级BIOS后,双系统Ubuntu找回
昨天请了一天假,今天回来了,开机没注意,好像确认一下,笔记本就自动升级BIOS了,只能等它升级完。BIOS升级完了,就进入WIN10了,我是双系统,想进Ubuntu,就重启,回车,按F12,启动列表里没有Ubuntu了。只好再进入WIN10,一番尝试后,解决如下:用EasyUEFI软件,添加一个启动项,选EFI的FAT分区,文件路径选:\EFI\ubuntu\grubx64.efi。再启动,回车,按F12,启动列表里就有Ubuntu了。需要说明的是,我的BIOS模式是UEFI启动的,Ubuntu原创 2020-09-03 09:39:05 · 1410 阅读 · 2 评论 -
在windows上,CMake不能找到头文件目录
在windows上,用CMake编译libpng,Configure提示找不到ZLIB_LIBRARY ZLIB_INCLUDE_DIR。CMake Error at C:/Program Files/CMake/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message): Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)Call St.原创 2020-09-01 19:45:19 · 3275 阅读 · 1 评论 -
WLAN不能使用,网络连接空白的问题
一台WIN10笔记本以前WLAN是可以使用的,后来不能使用了,点击网络连接图标也没有wifi热点列表。这个本本很薄,没有有线网口。查看设置:控制面板\网络和 Internet\网络连接,里面是空白的。查看设备管理器,usb设备里有一个三角形中间有感叹号的设备,折腾了驱动什么的没有用。经过一通折腾,判断是无线网卡有问题,拆机,拆掉无线网卡,设备管理器里有感叹号的设备没了。还有一个地方可以确认是无线网卡问题,本本的无线网卡和蓝牙一般是一个硬件,这个本本的蓝牙也不能用了,可以判断是硬件问题。换了一个新的原创 2020-08-25 14:53:05 · 2630 阅读 · 0 评论 -
Ubuntu的ls命令卡住
执行ls/ll等命令卡住,退不出来,ctrl-c等也退不出来,只能再登陆一个杀掉进程。df执行也卡住。代码会卡死在access(xx_dir.c_str(), 6)这里。原因:目录里有mount的目录,mount的目录出了问题。解决办法umount -f 出问题的目录。如果该目录在使用中,kill相关进程,或重启。...原创 2020-07-14 19:22:02 · 1516 阅读 · 0 评论 -
-520103681
为什么用这个数字做标题呢?因为被坑了,服务器会发一个Blob给前端,前端先读出一个长度,再处理后面数据,但这个长度大多数时候都是-520103681。后来才发现,当发来的是图片时,根本没有长度,读出来的是jpeg图片的flag,0xE0FFD8FF。而0x0xE0FFD8FF在js里作为int32读出来是-520103681。...原创 2020-07-10 18:48:26 · 166 阅读 · 0 评论 -
Linux下解压zip,文件名乱码问题
在Windows下压缩的zip文件在Linux解压,由于有中文,文件名都是乱码。解决办法:unzip -O gbk xxx.zip我原来解决方法是:在windows上解压,在WIN10的Ubuntu里zip压缩,这样压缩的zip里面文件名是utf8编码的,解压就正常了。...原创 2020-07-10 18:02:11 · 410 阅读 · 0 评论 -
Chrome跨域问题
从网上下载的html本地运行,出错,按F12,发现:Access to script at 'file:///F:/xxx/yyy.js' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.按网上解决方法,在chrome快捷方式“目标原创 2020-07-07 20:53:05 · 547 阅读 · 0 评论 -
批量修改文件后缀
有时候需要批量修改文件名后缀,比如把*.aa改为*.bb,网上搜的都是shell程序,我试验一下,下面bash命令可以解决:ls *.aa | awk -F '.' '{print $1}' | xargs -I {} mv {}.aa {}.bbxargs -I {} 表示用参数替换后面的{}。...原创 2020-05-14 19:47:31 · 447 阅读 · 0 评论 -
去除重复文件内容
一个文件里数据是':'分隔的数据,我们只看看第四列数据有几种,可以:awk -F ':' '!a[$4]++' aa.txt这样第四列内容一样的,都只在第一次遇到时输出,后面有同样内容的不输出。如果对整句去重,去除文件里重复的行:sort -u temp.txt这个会排序,改变顺序,但可以去除重复行,输出的都是不重复的。...原创 2020-05-09 11:51:02 · 554 阅读 · 0 评论 -
error: expected unqualified-id before ‘*’ token
出错如下:/home/xxx/boost_1_67_0/boost/uuid/uuid_io.hpp:100:32: error: expected unqualified-id before ‘=’ token unsigned char byte = static_cast<unsigned char>(std::distance(&xdig...原创 2020-05-08 09:50:43 · 3533 阅读 · 0 评论 -
grep排除目录,文件。
grep -rn --exclude-dir=build_* --exclude-dir=kernel --exclude-dir=drivers --exclude=*.out 'abcdefg' .前面三个排除目录,后面排除*.out,搜索“abcdefg”。原创 2020-04-27 15:01:47 · 1278 阅读 · 0 评论 -
visual studio 找不到声明问题
最近换了一个sdk, vs里一片红,找不到头文件,因为环境变量变了,头文件路径还是原来的环境变量的。解决方案:重新扫描解决方案。原创 2020-04-01 18:16:15 · 786 阅读 · 0 评论 -
Windows/Ubuntu双系统时间显示问题
操作系统显示的时间是根据BIOS里时间显示的。但是不同的操作系统对BIOS里时间理解不同。Windows当作本地时间(local time),所以在Windows系统中显示的时间跟BIOS中显示的时间是一样的。Linux类的当做UTC(Universal Time Coordinated),然后加上时区,例如BIOS里是1点,我们时区是+8(东8区),显示出来是9点。既然这样,我们BIO...原创 2020-03-12 11:24:08 · 578 阅读 · 0 评论 -
三星s7edge手机无法连接adb问题
手里有个闲置的S7Edge手机,想用来做开发机用,首先要打开“开发者选项”,跟一般手机有点不同:“设置”-》“关于手机”-》“软件信息”-》“编译编号”,就在这个编译编号上点击几次就打开了。但是连接上电脑后,Android Studio中不能发现设备,用adb命令也不能发现设备。设备管理器里也没有Adb Interface设备,也没有带问号的设备,pc能访问手机MTP,PTP等。这...原创 2020-01-05 20:34:00 · 3914 阅读 · 0 评论 -
用adb命令获得屏幕分辨率
接触一块新开发板,不知道分辨率,用adb命令获得屏幕分辨率:adb shell dumpsys window displays里面也有dpi参数,通过下面公式就可以算像素:px = dp(dpi / 160)...原创 2019-11-25 20:02:53 · 1554 阅读 · 0 评论 -
VirtualBox扩展包下载的位置
下载了扩展包,安装后也选择不删除,则VirtualBox扩展包在下面目录:C:\Users\Administrator\.VirtualBox这个是Win7的目录,仅供参考,其他平台不一定。原创 2019-11-16 19:54:39 · 1310 阅读 · 0 评论 -
svn E1400001 错误
SVN检出时,提示:svn: E140001: zlib (uncompress): corrupt data: Decompression of svndiff datacleanup后up也没有用,还是这个错误.重启svn服务器后,问题解决,顺利update.原创 2019-09-25 15:53:39 · 1018 阅读 · 0 评论 -
鼠标滚轮怎么变调节音量了
从网上找的:有的鼠标的dpi按键是可以切换滚轮的功能的, 一般是滚动网页和调节声音大小两种功能。多媒体鼠标,滚轮周围的dpi键,按住5秒,然后松开即可切换.转载 2017-11-22 15:30:24 · 19238 阅读 · 2 评论