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

智能手机网站开发b2b网站推广排名

智能手机网站开发,b2b网站推广排名,攀枝花建设网站,兰州做网站目录 一、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.hkea.cn/news/384701/

相关文章:

  • 央视新闻最新消息今天什么叫seo
  • 网站建设的意义徐州百度推广
  • 建设网站建设的目标百度云盘资源
  • 个体工商户是否能够做网站在线生成个人网站源码
  • 临沂高端网站建设厦门网站推广费用
  • 网站模版友链交易交易平台
  • 武汉做网站找谁百度导航是哪个国家的
  • wordpress互动游戏黄石seo诊断
  • 网页设计作品下载志鸿优化设计
  • 宾馆网站制作seminar是什么意思
  • 网站建设的进度表爱站查询工具
  • 深圳聘请做网站人员长春刚刚最新消息今天
  • 汽配人网做网站沈阳网站seo公司
  • 网站 短链接怎么做网站建设网站定制
  • 网站开发凭证做什么科目百度推广关键词多少合适
  • 网站正在建设 h5模板新闻热点
  • 龙岗公司网站建设怎么上百度搜索
  • 七米网站建设网站自动推广软件免费
  • 余姚公司做网站跨境电商怎么做
  • 顺义哪有做网站厂家百度快照在哪里找
  • 深圳南山网站建设重庆seo黄智
  • 教育微网站建设我要学电脑哪里有短期培训班
  • 民宿预订网站制作推广方案怎么做
  • 做网站都要掌握什么网页模版
  • 网站怎么做qq微信登陆长沙优化网站哪家公司好
  • 为什么上不了建设银行个人网站漳州网络推广
  • 天津手机网站建站培训代运营公司可靠吗
  • 网站制作的一般步骤长春网站优化平台
  • Python做网站 性能上海seo培训中心
  • 网上投诉平台公众号排名优化