求救 -- 用Assembly.Load引用dll库报错

深行远科技 2017-02-16 01:41:30
在C#里面 ,用Assembly.Load()方法引用动态库一直报错
下面错误提示:
“System.BadImageFormatException”类型的未经处理的异常在 mscorlib.dll 中发生

其他信息: 未能加载文件或程序集“msvcr100”或它的某一个依赖项。该模块应包含一个程序集清单。
尝试过的方法:
1 项目->右键->属性 生成,修改目标平台
2 项目->右键->属性 调试-》去掉 启用 vs 承载

dll库放在工程的bin文件夹下,调用代码如下
using System.Reflection;

namespace WindowsFormsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
//[DllImport]
Assembly ass = Assembly.Load("mcr"); //加载dll文件
Type[] type = ass.GetTypes();

//MessageBox.Show(t.ToString());
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
...全文
260 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
crystal_lz 2017-02-16
  • 打赏
  • 举报
回复
就算是你真要引用msvcr100 也不是这样去用的 非托管代码的dll 使用 [DllImport("msvcr100.dll")] 里面的函数 全部用 extern 关键字申明一边 如果是托管代码 直接右键添加引用 像你这样的书写方式通常用于反射
Poopaye 2017-02-16
  • 打赏
  • 举报
回复
引用 3 楼 shingoscar 的回复:
而且为啥要加载msvcr100?
要用到里面什么功能?c#都有啊
Poopaye 2017-02-16
  • 打赏
  • 举报
回复
而且为啥要加载msvcr100?
tcmakebest 2017-02-16
  • 打赏
  • 举报
回复
楼主以为的DLL是什么, 请按照它的来源正确使用. Assembly.Load 只能加载.net编写的DLL
cheng2005 2017-02-16
  • 打赏
  • 举报
回复
msvcr100是VC++的库dll吧,不是托管dll你加载报错很正常啊。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧