【发布时间】:2012-12-17 16:55:12
【问题描述】:
我用 VS10 编写了以下项目:
- 一个调用 的 C# (.net 4.0) 程序
- 一个使用 boost::thread 的 C++ 非托管 dll
- 一个安装项目,其中包括 C# 可执行文件、C++ dll、boost::thread dll 和一些其他文件。此外,在安装过程中会检查是否安装了 framework .net 4.0,如果没有,则会下载。
编译(三个项目中的每一个都是 x64)是好的,程序可以在我的电脑上运行(Windows 7 64 位)。 我在其他一些计算机(所有 Windows 7 64 位)上测试了该程序,我注意到:
- 在带有 VS10 和 Boost 的程序中运行
- 在没有 VS10 和 Boost 的情况下,程序在 C++ Dll 中出现错误
我认为问题在于缺少一些 boost Dll。我对吗? 或者问题可能与VS有关?
编辑:
不得不提的是,程序的结构如下:
- 主窗体 (C#),其中设置了一些参数,然后后台工作人员调用
- 执行其工作并使用 boost::thread 的 C++ DLL
- 它会进行一些计算
- 当它得到一些结果时,将它们写入文件
- 继续计算等等
- 主窗体有一个文件系统观察器,用于查找结果文件并对结果执行一些操作。
此外,当我收到错误消息时,主窗体会正确加载并且可以设置参数。当后台工作人员开始工作(调用 C++ DLL)时会发生错误。
所以我很确定框架安装没有问题。
更新:
原来我忘记在安装项目中包含一些 DLL。现在,包括他们在内,错误发生了变化。
现在,在与以前相同的时间点(在同一台计算机上)我收到另一个错误:
BadImageFormatException: 试图加载一个带有 格式不正确
我阅读了this article,但我在 C# 项目和 C++ DLL 中都设置了 x64,并且设置项目具有 TargetPlatform x64。有什么想法吗?
【问题讨论】:
标签: c# c++ visual-studio-2010 dll boost-thread