【问题标题】:How to add C# dll in Visual C++ console application? [duplicate]如何在 Visual C++ 控制台应用程序中添加 C# dll? [复制]
【发布时间】:2012-10-05 11:28:58
【问题描述】:

可能重复:
How to use c# Dll in vc++?

我已经在 c 语言中创建了一个类并制作了该类的 DLL,现在我想在我的 VC++ 项目中使用 DLL 文件中的方法。

我知道如何在 VC++ 项目中添加 .lib 文件,但我不知道如何在 VC++ 项目中添加 DLL 文件。

我想创建我在 VC++ 项目的 DLL 中定义的类的对象,并通过我想访问其方法的对象。

当我尝试这个时,我得到了以下错误:

support.microsoft.com/kb/828736 error "referenced assembly entlibcontrib.data.mysql does not have strong name"

请指导我完成这个。

【问题讨论】:

  • “请指导我完成这个。” - 做过任何研究吗?你发现了什么?
  • @CodeCaster 我试过了,我得到了这个support.microsoft.com/kb/828736 错误“引用的程序集 entlibcontrib.data.mysql 没有强名称”
  • @Ajinkya 然后在您的问题中提及这一点。或者更好的是,下载具有强名称程序集的企业库或do so yourself。
  • @CodeCaster 我去了support.microsoft.com/kb/828736 我做了这个 C:\Documents and Settings\Administrator\Desktop\NiproDAAB\IISWebFrameworkDAAB\bin\Release>RegAsm.exe IISWebFrameworkDAAB.dll Microsoft (R) 。 NET Framework 程序集注册实用程序 4.0.30319.1 版权所有 (C) Microsoft Corporation 1998-2004。版权所有。类型注册成功,但没有 .tlb 文件,如“7”点下的“从本机 C++ 代码调用托管 DLL”标题下所述

标签: c# visual-studio-2010 visual-c++ dll dllimport


【解决方案1】:

请记住使 DLL 对 COM 可见并遵循this guide。对于可见性,您可以更改 AssemblyInfo.cs 并添加 [assembly: ComVisible(true)] 或通过 Visual Studio 的集成属性编辑器。

【讨论】:

  • @Christianlvicevic 先生,我做了上面链接中给出的操作,但是当我在“注册托管 DLL 以与 COM 或本机 C++ 一起使用”标题下执行 RegAsm.exe My.dll 时,我得到“RegAsm : 警告 RA0000 : 没有注册类型”
  • 先生,我得到了“类型注册成功”,但没有 .tlb 文件,如“7”点下的“从本机 C++ 代码调用托管 DLL”标题下所述
  • C:\Documents and Settings\Administrator\Desktop\NiproDAAB\IISWebFrameworkDAAB\bin\Release>RegAsm.exe IISWebFrameworkDAAB.dll Microsoft (R) .NET Framework Assembly Registration Utility 4.0.30319.1 版权所有 (C ) 微软公司 1998-2004。版权所有。类型注册成功
【解决方案2】:

你的 c# dll 需要是 ComVisible 属性

[assembly: ComVisible(true)]

欲了解更多信息,请参阅here

如果您是非托管 C++ 项目,那么您必须使用 COM 互操作来访问程序集。之后您可以像访问任何其他 COM 组件一样访问它

【讨论】:

  • 先生,我做了上面链接中给出的操作,但是当我在“注册托管 DLL 以与 COM 或本机 C++ 一起使用”标题下执行 RegAsm.exe My.dll 时,我得到“RegAsm:警告RA0000 : 没有注册类型"
  • 先生,我得到了“类型注册成功”,但没有 .tlb 文件,如“7”点下的“从本机 C++ 代码调用托管 DLL”标题下所述
  • 我做了这个 C:\Documents and Settings\Administrator\Desktop\NiproDAAB\IISWebFrameworkDAAB\bi n\Release>RegAsm.exe IISWebFrameworkDAAB.dll Microsoft (R) .NET Framework Assembly Registration Utility 4.0.30319.1版权所有 (C) Microsoft Corporation 1998-2004。版权所有。类型注册成功
猜你喜欢
  • 2019-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-11
  • 2015-05-10
  • 2021-08-09
相关资源
最近更新 更多