如何在 C++ 中将 byte[] 返回到 C# CLR

发布于 2024-12-09 08:45:08 字数 519 浏览 0 评论 0原文

我正在使用 C++ CLR 来包装本机 C++ dll。以便C#项目可以访问C++ CLR dll。

问题是,当我想返回一个byte[]到C#,并在CLR中编写这样的代码时:

static System::Byte[]^ GetTestByteBuffer()
{
    System::Byte[]^ byte = gcnew System::Byte[128];
    return byte;
}

但它无法通过编译。有人可以帮助我吗?

编译错误:

error C3409: empty attribute block is not allowed 
error C3409: empty attribute block is not allowed error C2146: syntax error "^": 
error C2334: unexpected token(s) preceding '{'; skipping apparent function

I'm using C++ CLR to wrap a native C++ dll. So that the C++ CLR dll can be accessed by a C# project.

The problem is that when I want to return a byte[] to C#, and write such code in CLR:

static System::Byte[]^ GetTestByteBuffer()
{
    System::Byte[]^ byte = gcnew System::Byte[128];
    return byte;
}

but it cannot pass compilation. Anyone can help me?

compilation error:

error C3409: empty attribute block is not allowed 
error C3409: empty attribute block is not allowed error C2146: syntax error "^": 
error C2334: unexpected token(s) preceding '{'; skipping apparent function

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁把谁当真 2024-12-16 08:45:08

这是在 C++/CLI 中声明字节数组的方式:

array<System::Byte>^

Google 是你的朋友...

This is the way you declare a byte array in C++/CLI:

array<System::Byte>^

Google is your friend...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文