QTextCodec::codecForName导致的乱码

QTextCodec::codecForName导致的乱码遇到好几次了,每次都花费大量时间取查找,很坑,记录如下:

在空电脑上部署,一部分是正常显示,一部分是乱码显示。安装完开发环境又好了。

从乱码处分析后,发现QTextCodec::codecForName(“GBK”)返回空值,原因是未正常加载中文插件qcncodecs4.dll

使用addLibraryPath函数来修改插件加载位置

QString sPath = QString("./plugins/");
a.addLibraryPath(sPath);

过程中还遇到

LDR: LdrpWalkImportDescriptor() failed to probe ***.dll for its manifest, ntstatus 0xc0150002

这是因为库文件使用了manifest文件,依赖了VC运行库,"Microsoft.VC90.DebugCRT" version="9.0.21022.8" 和 "Microsoft.VC80.DebugCRT" version="8.0.50727.4053"。

这个库文件夹在vc安装目录下,需要拷贝到依赖的dll目录下

你可能感兴趣的:(Qt,codecForName,qt,LDR)