文档章节

boost静态链接库和c++/clr不兼容问题:未能加载文件或程序集,不是有效的Win32应用程序。

lanybass
 lanybass
发布于 2016/07/13 18:52
字数 355
阅读 28
收藏 1
点赞 0
评论 0

转自:http://blog.csdn.net/h807892124/article/details/51326552

项目上遇到的问题:c++编写的类使用托管c++包装成dll提供给c#项目使用。c++需要使用boost,clr,项目目标平台都是win32/x86。开发环境win10 x64系统,vs2013,.Net Framework 4.0,boost 1.55。

【问题表现】c#程序在win10 x86/x64正常运行,但在win7 x86/x64运行时发生异常:
Additional information: Could not load file or assembly “LicenseClientDLL_D.dll” or one of its dependencies. is not a valid Win32 application. (Exception from HRESULT:0x800700C1)
这里写图片描述

【原因】boost库默认使用静态链接方式,但boost静态链接库和C++/clr不兼容,所以要换成动态链接。
stackoverflow上相关资料:
[引用]Too many comments in the net saying boost static libs and CLR are not compatible.
[引用]It was the boost libraries having some issue when compiled without /clr but linked to a program that uses /clr

【解决方案】c++使用boost动态链接库。
1.在需要使用boost库的项目的“预处理器定义”增加 BOOST_THREAD_DYN_LINK (要求动态链接boost库)
2.手动拷贝需要引用的boost库文件到项目路径 libboost、boost开头的lib文件(BOOST_LIB_DIAGNOSTIC 该宏可以查看需要的boost库)
3.重新编译

本文转载自:http://blog.csdn.net/h807892124/article/details/51326552

共有 人打赏支持
lanybass
粉丝 84
博文 39
码字总数 15052
作品 0
渝中
技术主管
HoloLens开发——C++ DLL封装及在win32、Unity、AR眼镜中调用情况

一、C++ Dll基础了解 动态链接库(dll)比较好的介绍在孙鑫《VC++深入详解》第十九章动态链接库中有详细介绍。主要涉及以下问题: 1.静态链接库与动态链接库的区别 https://blog.csdn.net/za...

haitianyunlan ⋅ 05/09 ⋅ 0

关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决

关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决 转自:http://hi.baidu.com/qinfengxiaoyue/item/ff262ccfb53b4c2ba0b50a89 引自:http://blog......

老张他爹945 ⋅ 05/10 ⋅ 0

MFC功能扩展控件BCGSuite for MFC发布v27.1|附下载

BCGSuite for MFC是一款Visual Studio 2008/2010/2012/2013 的MFC功能扩展控件。虽然Visual Studio 2008中包含的新版MFC是基于BCGControlBar Pro技术的,但某些典型的控件如网格、日历、编辑...

Miss_Hello_World ⋅ 04/26 ⋅ 0

在学校和老师学习C/C++你学到了什么?

计算机行业在未来是一个具有无限潜力的行业,但同样行业竞争力也是十分强烈,同样事靠计算机吃饭的,你是职业叫码农,人家的职业叫程序员,大牛的职业是架构师、分析师,你甘心成为一个日夜加...

悟空_b201 ⋅ 04/10 ⋅ 0

C/C++ 如何进行持续交付?使用 Jenkins+Conan!

C 和 C ++ 目前被应用在操作系统、嵌入式系统、财务、科研、汽车、机器人、游戏等非常重要的行业。主要原因是 C 和 C++ 相比于其他技术来说拥有很高的性能。但同样,C/C ++ 生态系统也面临一...

JFrog中国 ⋅ 01/15 ⋅ 0

Windows上如何使用SWIG (c++ android 示例)

SWIG介绍 SWIG (Simplified Wrapper and Interface Generator) ,即简化包以及接口生成器,为脚本语言(tcl,perl,python等)提供了C和C++的接口。SWIG在1995年在Los Alamos National Laborat...

u014644594 ⋅ 05/28 ⋅ 0

解决C++ MFC源码运行时 由于找不到MFC42D.DLL,无法继续执行代码

大家在从一台PC上拷贝C++源代码到另一台PC上 编译时有没有遇到过这种情况 由于找不到MFC42D.DLL,无法继续执行代码。重新安装程序可能会解决此问题。 由于找不到MSVCRTD.dll,无法继续执行代...

q297896911 ⋅ 05/15 ⋅ 0

比特币源码研读之二C++预备知识

本文由【区块链研习社】优质内容计划支持,更多关于区块链的深度好文,请点击【区块链研习社】 本文作者:区块链研习比特币源码研读班 韬声依旧在路上 在正式为大家分享比特币源码研读之前,...

韬声依旧在路上 ⋅ 05/07 ⋅ 0

大神有话说之c++,还在迷茫的朋友可以来看一下

C++ 是一种中级语言,它是由 Bjarne Stroustrup 于 1979 年在贝尔实验室开始设计开发的。C++ 进一步扩充和完善了 C 语言,是一种面向对象的程序设计语言。C++ 可运行于多种平台上,如 Window...

悟空_b201 ⋅ 05/30 ⋅ 0

什么是 C 和 C ++ 标准库?

简要介绍编写C/C ++应用程序的领域,标准库的作用以及它是如何在各种操作系统中实现的。 我已经接触C++一段时间了,一开始就让我感到疑惑的是其内部结构:我所使用的内核函数和类从何而来? ...

oschina ⋅ 04/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

容器之重命名镜像

使用docker tag命令来重命名镜像名称,先执行help,查看如何使用如下 mjduan@mjduandeMacBook-Pro:~/Docker % docker tag --helpUsage:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TA...

汉斯-冯-拉特 ⋅ 3分钟前 ⋅ 0

with 的高级用法

那么 上下文管理器 又是什么呢? 上下文管理器协议包含 __enter__ 和 __exit__ 两个方法。with 语句开始运行时,会在上下文管理器对象上调用 __enter__ 方法。with 语句运行结束后,会在上下...

阿豪boy ⋅ 22分钟前 ⋅ 0

使用 jsoup 模拟登录 urp 教务系统

需要的 jsoup 相关 jar包:https://www.lanzous.com/i1abckj 1、首先打开教务系统的登录页面,F12 开启浏览器调试,注意一下 Request Headers 一栏的 Cookie 选项,我们一会需要拿这个 Cook...

大灰狼时间 ⋅ 22分钟前 ⋅ 0

关于线程的创建

转自自己的笔记: http://note.youdao.com/noteshare?id=87584d4874acdeaf4aa027bdc9cb7324&sub=B49E8956E145476191C3FD1E4AB40DFA 1.创建线程的方法 Java使用Thread类代表线程,所有的线程对......

MarinJ_Shao ⋅ 33分钟前 ⋅ 0

工厂模式学习

1. 参考资料 工厂模式-伯乐在线 三种工厂-思否 深入理解工厂模式 2. 知识点理解 2.1 java三种工厂 简单工厂 工厂模式 抽象工厂 2.2 异同点 逐级复杂 简单工厂通过构造时传入的标识来生产产品...

liuyan_lc ⋅ 45分钟前 ⋅ 0

Java NIO

1.目录 Java IO的历史 Java NIO之Channel Java NIO之Buffer Java NIO之Selector Java NIO之文件处理 Java NIO之Charset Java 可扩展IO 2.简介 “IO的历史”讲述了Java IO API从开始到现在的发...

士别三日 ⋅ 50分钟前 ⋅ 0

[Err] ORA-24344: success with compilation error

从txt文本复制出创建function的脚本,直接执行,然后报错:[Err] ORA-24344: success with compilation error。 突然发现脚本的关键字,居然不是高亮显示。 然后我把脚本前面的空格去掉,执行...

wenzhizhon ⋅ 59分钟前 ⋅ 0

Spring Security授权过程

前言 本文是接上一章Spring Security认证过程进一步分析Spring Security用户名密码登录授权是如何实现得; 类图 调试过程 使用debug方式启动https://github.com/longfeizheng/logback该项目,...

hutaishi ⋅ 今天 ⋅ 0

HAProxy基于KeepAlived实现Web高可用及动静分离

前言 软件负载均衡一般通过两种方式来实现: 基于操作系统的软负载实现 基于第三方应用的软负载实现 LVS是基于Linux操作系统实现的一种软负载,而HAProxy则是基于第三方应用实现的软负载。 ...

寰宇01 ⋅ 今天 ⋅ 0

微软自研处理器的小动作:已经开始移植其他平台的工具链

微软将 Windows 10 、Linux 以及工具链如 C/C++ 和 .NET Core 运行时库、Visual C++ 2017 命令行工具、RyuJIT 编辑器等移植到其自主研发的处理器架构 E2。微软还移植了广泛使用的 LLVM C/C++...

linux-tao ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部