如何调用C DLL函数C ++ / CLI

脑电图

我研究了很多在线搜索,并且大多数示例都涉及使用C#进行C#或使用C#进行C ++,但是从未使用过C ++中的C DLL调用(在我的情况下特别是使用WPF的C ++ / CLI)。

有人可以举例说明如何在C ++中调用C DLL函数。我有一个C DLL,它的所有功能都定义为extern“ C” funcName(),还有一个导出函数.def文件,其中包含所有需要导出的函数名。现在有了这个C DLL,我该如何在C ++代码中调用其导出的函数。

谢谢。

创意帽

好的,因此“ WPF with C ++”不是一种语言。WPF是一个.NET库。C ++ / CLI是您正在编写的语言。

从C ++ / CLI调用C dll是“相当简单”,具体取决于DLL的导出方式。您可以使用.NET库执行此操作,也可以使用C库(我建议使用C库)。链接到dll有两种方法:隐式链接或显式链接。

隐式链接更加简洁,恕我直言。但是您需要访问头文件(编辑:可能带有declspec装饰,请参见下面的BenVoigt注释)和.lib文件。如果有这些,只需将.lib文件添加到其他依赖项(右键单击项目->属性->配置属性->链接器->输入),然后将头文件路径添加到include(右键单击项目->属性->配置属性-> C / C ++->常规)。然后,您可以将头文件(提及此问题的属性推荐)作为外部“ C”头文件包括在内:

extern "C"
{
   #inlude "c_header.h"
}

(这是因为C ++进行名称处理,以便您可以重载&命名空间,类和其他东西。如果不使用,它将把C头文件解释为C ++头文件(并修饰所有名称)extern "C"

http://msdn.microsoft.com/zh-CN/library/d14wsce5.aspx

或者您可以显式链接

http://msdn.microsoft.com/en-us/library/784bt7z7.aspx http://msdn.microsoft.com/en-us/library/zzk20sxw.aspx

但是我怀疑弄清楚您使用的是C ++ / CLI,这会告诉您使用Google的内容。(尽管C ++答案也适用于您)。

对于.NET方式,一个简单的技巧是查找C#调用(请注意,这也是显式链接,因此不需要.lib文件和标头)。

http://msdn.microsoft.com/zh-CN/library/eyzhw3s8.aspx

现在,棘手的一点是,如果您使用的是C ++ / CLI,并且想将您喜欢的托管类转换为C形式,则必须将代码编组这是一个方便的链接,指向表格,向您展示如何操作。

http://msdn.microsoft.com/zh-CN/library/ac7ay120%28vs.71%29.aspx

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++ / CLI DLL中从C#应用程序调用函数?

来自分类Dev

从C ++ / CLI函数调用C#函数

来自分类Dev

如何从c#dll,c ++ / cli调用的dll返回字节数组,uint值

来自分类Dev

如何从C#调用C ++ DLL函数

来自分类Dev

从C ++ / CLI调用C#dll时出现FileNotFoundException

来自分类Dev

使用C ++ / CLI创建dll

来自分类Dev

区别:本机 DLL、UWP DLL 和 C++/CLI DLL

来自分类Dev

C ++ Cli WebClient无法在dll中工作

来自分类Dev

未调用派生类的c ++ / cli静态构造函数

来自分类Dev

Delphi如何使用typedef void *参数调用C ++ dll函数?

来自分类Dev

C ++如何从dll函数调用中获得正确的回报

来自分类Dev

如何在C ++ / CLI程序和C ++ / CLI DLL之间传递字节数组?

来自分类Dev

从C#中的C ++ DLL P /调用DLL函数

来自分类Dev

从Python调用C DLL函数时出错

来自分类Dev

从C#Ironpython调用.dll函数

来自分类Dev

通过C DLL调用函数时出错

来自分类Dev

无法从 C DLL 调用该函数

来自分类Dev

如何从C调用C ++函数?

来自分类Dev

无法从C ++ / CLI使用自定义.dll(C#)

来自分类Dev

我如何从其他 C++ dll 中的 dll 调用 JNIEXPORT 函数

来自分类Dev

How to Pass Byte Array Between a C++/CLI Program and a C++/CLI DLL?

来自分类Dev

如何在 C++/CLI 中通过枚举类正确调用 case 语句?

来自分类Dev

C#导出函数dll

来自分类Dev

从dll调用C函数后,C#代码中的ArithmeticException

来自分类Dev

调用更改C#中传递的参数的C dll函数

来自分类Dev

从C#调用C ++ DLL函数时崩溃

来自分类Dev

部署.NET C ++ / CLI DLL的前提条件?

来自分类Dev

.net可以从内存中动态加载c ++ / cli dll吗?

来自分类Dev

在Powershell中将C ++ CLI .dll用作程序集

Related 相关文章

热门标签

归档