gpt4 book ai didi

c# - 在 C# 应用程序中导出 C++ 函数

转载 作者:搜寻专家 更新时间:2023-10-31 02:00:24 25 4
gpt4 key购买 nike

您好,很抱歉打扰了,我会展示问题:

我正在尝试将一些用 C++ 编写的函数导出到 DLL 中,以便将它们导入到在 Visual Studio 上运行的 C# 应用程序中。我按照以下代码中的报告进行导出,

tobeexported.h:

namespace SOMENAMESPACE
{
class __declspec(dllexport) SOMECLASS
{
public:
SOMETYPE func(param A,char b[tot]);

};
}

待导出.cpp:

#include "stdafx.h"
#include "tobeexported.h"
...


using namespace SOMENAMESPACE;

SOMETYPE SOMECLASS:: func(param A,char b[tot])
{
...some stuff inside...
}

dll 已正确创建,代码已由 CLR 管理(使用反汇编软件(反射器)查看)并包含导出的函数 然后我在我的 c# 应用程序中“添加引用”并找到了 dll,但是当我用对象浏览器打开它,它完全是空的,类和对象都没有被导出并准备好使用

你能帮帮我吗?谢谢最好的问候

最佳答案

使用托管 C++ 编译 DLL 怎么样?然后你只需要像这样向类添加一个引用:

namespace SOMENAMESPACE
{
public ref class SOMECLASS
{
public:
SOMETYPE func(param A,char b[tot]);

};
}

在其他项目中成功编译和引用后,该类应该是可见的。导出 native C++ 并不是真正可移植的,每个编译器产生不同的结果并且从 C# 内部绑定(bind)是乏味的...

编辑:向 ref 类添加公共(public)访问修饰符...

关于c# - 在 C# 应用程序中导出 C++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com