Category Archives: 经验分享

无法解析的外部符号 __CrtDbgReport

经常在链接是报link2001错误,其中一般是函数体没有定义错误。但是排除以上简单的外,还有一种如下无法解析系统文件中的函数定义。如下:
LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
libcpmtd.lib(cerr.obj) : error LNK2001: 无法解析的外部符号 __CrtDbgReportW
libcpmtd.lib(stdthrow.obj) : error LNK2001: 无法解析的外部符号 __CrtDbgReportW
。。。。。。
libcpmtd.lib(_tolower.obj) : error LNK2019: 无法解析的外部符号 __calloc_dbg,该符号在函数 __Getctype 中被引用
像这种情况,可以推测运用了错误的运行库包。
在一程序中使用不同类型的运行时库或使用调试和非调试版本的运行时库,则将收到此链接错误。
例如,编译一个文件以使用一种运行时库,而编译另一个文件以使用另一种运行时库(例如单线程运行时库对多线程运行时库),试图链接它们,则将得到此警告。应将所有源文件编译为使用同一运行时库。
其实就是调正编译器选项参数:/MD、/MT 和 /LD
在vc8中,在“配置属性–>C/C++–>代码生成–>运行时库”中将“多线程(/MT)”统一改为“多线程调试(/MTd)”即可。

VisualStudio 2019 编译Winxp可用的程序

# 本文作者: coneco @Coneco’s diary
# 本文链接: https://conecoy.cn/Technology/Development/VS-MSVC多个版本时的正确使用与问题解决/
# 版权声明: 本站所有文章除特别声明外,均采用 (CC)BY-NC-SA 许可协议。转载请注明出处!

本文产生的原因
最近在用 VS 2019 来编译兼容 WinXP 的程序时,发现高版本 (14.29.xxxxx) 的 MSVC 的 runtime 代码部分不兼容 winXP。之后使用低版本(14.25.xxxxx)的 MSVC 就可以运行在 winXP 上,所以本文的目的是记录整个问题的解决工程,方便其他朋友参考。

Continue reading

Windows 10程序最小化后在任务栏找不到图标

朋友电脑中了恶意软件,除弹窗外还表现为任务栏空荡荡,不管运行多少个程序,一旦最小化就找不到了,任务栏没有图标,只能通过ALT+TAB快捷键切换。尝试多种方法无果,从微软社区回帖中找到解决办法,尝试有效。

将以下内容粘贴到记事本,然后另存为 anyFileName.bat, 在刚刚保存的.bat文件上单击鼠标右键,以管理员身份运行。运行完成任务栏即可恢复,无效的话尝试重启电脑。

@echo off

taskkill /f /im explorer.exe

taskkill /f /im shellexperiencehost.exe

timeout /t 3 /NOBREAK > nul

del %localappdata%

\Packages\Microsoft.Windows.ShellExperienceHost_cw5n1h2txyewy\TempState\* /q

timeout /t 2 /NOBREAK > nul

start explorer

@echo on

从android.support迁移到androidx及常见问题解决

前言 Google 2018 IO 大会推出了 Android新的扩展库 AndroidX,用于替换原来的 Android扩展库,将原来的android.替换成androidx.;只有包名和Maven工件名受到影响,原来的类名,方法名和字段名不会更改。官方早就推荐将support库迁移到androidx,因为后续support库不会再做更新。 迁移时只需要3.2版本及以上的android studio,在菜单refactor中点击migrate to androidx即可,该向导会提示需要做的更新。其中包括gradle版本至少3.2以上,compileSdkVersion 版本28以上。 1、常用依赖库对比 Continue reading