当前位置: 首页 > news >正文

电子技术支持 东莞网站建设软件外包公司

电子技术支持 东莞网站建设,软件外包公司,独立网站建设ecshop,如何找企业联系做网站目录 一、vs2013 32 DLL 转 VS2022 64 DLL 所遇问题 1、 LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1800”不匹配值“1900” 2、原先VS2013 现在 VS2022 导致的vsnprintf 重定义问题 3、 无法解析的外部符号 __vsnwprintf_s 4、无法解析的外部符号__imp__CertFreeC…

目录

一、vs2013 32 DLL 转 VS2022 64 DLL 所遇问题

1、 LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1800”不匹配值“1900”

2、原先VS2013   现在 VS2022   导致的vsnprintf 重定义问题

3、 无法解析的外部符号 __vsnwprintf_s

4、无法解析的外部符号__imp__CertFreeCertificateContext

5、无法解析的外部符号__iob_func

6、LNK1218: 警告被视为错误 - 没有生成“object”文件

 7、end()找不到

8、使用64位openssl库

9、优化策略 或 运行时库 尽量一致


本打算用VS2013 编译64位的,结果 集成到vs2022 中时,因为所用的C++标准不同,因此导致不兼容,只能用VS2022 重新编译下,期间 编译优化策略也要保持一致,这里都禁止优化。

一、vs2013 32 DLL 转 VS2022 64 DLL 所遇问题

1、 LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1800”不匹配值“1900”

You are trying to link objects compiled by different versions of the compiler. That’s not supported in modern versions of VS, at least not if you are using the C++ standard library. Different versions of the standard library are binary incompatible and so you need all the inputs to the linker to be compiled with the same version. Make sure you re-compile all the objects that are to be linked.

The compiler error names the objects involved so the information the question already has the answer you are looking for. Specifically it seems that the static library that you are linking needs to be re-compiled.

你在尝试着将编译自不同版本编译器的对象链接起来。在现代版本的 VS 中这是不被支持的,至少在你使用了 C++ 标准库之后就不支持了。不同版本的标准库之间是二进制不兼容的,因此你需要使用统一版本的编译器来编译其所有的输入文件。请你需要链接的对象都全部重新编译了。

使用VS2022 重新编译下

_MSC_VER 为 1800,对应了 Visual Studio 2013

2、原先VS2013   现在 VS2022   导致的vsnprintf 重定义问题

 

在宏定义处,加上编译版本选择

#if defined(_MSC_VER)&&_MSC_VER<1900#define snprintf			_snprintf#define vsnprintf			_vsnprintf#define vsnwprintf        _vsnwprintf
#endif

3、 无法解析的外部符号 __vsnwprintf_s

 error LNK2019: 无法解析的外部符号 __vsnwprintf_s

原因:vs2015以上 默认编译时将许多标准库采用内联方式处理,因而没有可以链接的标准库文件,所以要专门添加标准库文件来链接标准库中的函数

工程->右键属性->链接器->输入->附加依赖项       添加 legacy_stdio_definitions.lib 

4、无法解析的外部符号__imp__CertFreeCertificateContext

因为openssl库使用了windows的一个密码学库: Crypt32

也把它加上

Crypt32.lib
legacy_stdio_definitions.lib


 

5、无法解析的外部符号__iob_func

在 VS2015 以上中 __iob_func 改成了 __acrt_iob_func,所以代码中需要增加一个名为 __iob_func 转换函数

在头文件中,

添加转换函数

#if _MSC_VER>=1900  
#include "stdio.h"   
_ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned);
#ifdef __cplusplus   
extern "C"
#endif   
FILE* __cdecl __iob_func(unsigned i) {return __acrt_iob_func(i);
}
#endif /* _MSC_VER>=1900 */  

6、LNK1218: 警告被视为错误 - 没有生成“object”文件

已经设置了否,还是有这个错误

后来发现,连接器哪里 还有个链接器 警告视为错误

 

 7、end()找不到

改为 : std::map<_Kty, _Ty>::end()

template<typename _Kty=size_t,typename _Ty=void*>
class CSafeMap: protected std::map<_Kty,_Ty>
{CMyMutex m_mutex;
public:typedef	int(*ENUM_SAFE_MAP)(_Kty,_Ty,void*);_Ty lockedFind(_Kty seq) {_Ty p=0;typename std::map<_Kty,_Ty>::iterator it=std::map<_Kty,_Ty>::find(seq);
#ifdef _WIN32if(it!= std::map<_Kty, _Ty>::end()) {
#elseif(it!=std::map<_Kty,_Ty>::end()) {
#endifp=it->second;}return p;}void lockedAdd(_Kty seq,_Ty p) {
#ifdef _WIN32std::map<_Kty, _Ty>::insert(std::make_pair(seq,p));
#elsestd::map<_Kty,_Ty>::insert(std::make_pair(seq,p));
#endif}_Ty lockedRemove(_Kty seq) {_Ty p=0;typename std::map<_Kty,_Ty>::iterator it=std::map<_Kty,_Ty>::find(seq);
#ifdef _WIN32if(it!= std::map<_Kty, _Ty>::end()) {
#elseif(it!=std::map<_Kty,_Ty>::end()) {
#endifp=it->second;
#ifdef _WIN32std::map<_Kty, _Ty>::erase(it);
#elsestd::map<_Kty,_Ty>::erase(it);
#endif}return p;}

8、使用64位openssl库

一开始编译很多错误,后来意识到,可能使用的openssl库,是32位的,所以网上又找了64位的编译后,才走上正轨。

9、优化策略 或 运行时库 尽量一致

如果还有问题,可以将dll 、目标工程,采用同样的优化策略

还不行的话,运行库 可设置为一样 后试试

, 

 

http://www.zhongyajixie.com/news/61040.html

相关文章:

  • 大型视频网站建设方案国际军事新闻
  • 杭州建设工程信用平台广州抖音seo
  • 做商贸网站进入百度网首页
  • 做网站游戏推广赚钱吗seo排名需要多少钱
  • 申请号的网站潍坊百度网站排名
  • 宝塔面板怎么做多个网站免费个人自助建站
  • 网站设计自已申请竞价推广代运营服务
  • 做噯噯的网站优化工具箱下载
  • 做网站前端seo搜索是什么意思
  • 微信网站模版下载免费的网页网站
  • 调查公司做网站需要备案吗青岛app开发公司
  • 怎么做网站轮播图片seo优化网站技术排名百度推广
  • 抖音代运营服务流程武汉seo管理
  • 蓝海国际版网站建设系统成都百度seo优化公司
  • 小程序开发平台哪家可信赖推广优化关键词
  • 网站建设外包公司排名四川成都最新消息
  • 微信朋友圈推广怎么做网站北京百度快照推广公司
  • 福州网站建设网络公司排名全网搜索指数查询
  • 关于征求网站建设的通知各引擎收录查询
  • fiverr找人做网站靠谱吗网络广告营销经典案例
  • 网站开发技术介绍南昌seo数据监控
  • 网站推广入口百度上做优化
  • 网站制作带优化搜索引擎优化解释
  • 汕头微网站域名查询服务器
  • 济南城乡建设委员会官方网站小说排行榜2020前十名
  • 空壳网站主体注销优化营商环境的金句
  • 爱站网关键词挖掘工具站长工具佛山网站建设制作
  • bp链接生成器网站微信公众号平台官网
  • 网站建设管理招聘百度95099如何转人工
  • 为什么政府网站做的很烂上海百度seo优化