2013-11-26 131 views
3

我想知道是否可以在C++函数之间传递我调用的C#对象?我已经可以从我的本地代码中调用我的C#dll,但是现在我需要在C++函数之间传递一个对象,这也意味着我需要在头文件中声明它...在C++函数之间传递C#类

在我的头文件我得到以下错误:

BOOL Exists(Api ^api); 

Error 60 error C3395: 'ApiBase' : __declspec(dllexport) cannot be applied to a function with the __clrcall calling convention 

有谁知道我应该如何处理这在我的头?

+2

只需停止使用'__declspec(dllexport)'。 –

+0

为什么?该怎么做呢? –

+0

'BOOL存在(Api^api);'是为了成为本地dll的api的一部分? –

回答

3

您使用__declspec(dllexport)导出本机C++类。但这听起来像你的课是一个托管的.net ref类。如果您希望导出托管客户端和非托管客户端的功能,则需要声明两个类。一个是托管的ref类,另一个是本地类。

或者,也许问题是您试图导出一个管理参数为__declspec(dllexport)的函数。这又是不可能的。

+0

嗯好的。如果我改变这个需要在函数之间传递给Singleton的类,也许它更简单,更简洁?这样我将拥有一个全球接入点。 –