C++/CLI,我有一个 Byte[],我需要第一个和最后一个元素的 char*

发布于 2024-09-02 15:36:33 字数 170 浏览 5 评论 0原文

我收到了一个包含文件的Byte[]。我需要将其传递给另一个需要两个参数的方法,一个 char* 到文件开头,一个 char* 到文件末尾。

我假设我需要先固定数组,这样它就不会被收集。我不认为我可以只投射第一个和最后一个元素,对吧?

I've been handed a Byte[] that contains a file. I need to pass this to another method that is expecting two parameters, a char* to the beginning of the file and a char* to the end of the file.

I'm assuming I need to pin the array first so it doesn't get collected. I don't imagine I can then just cast the first and last elements, right?

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

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

发布评论

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

评论(1

随风而去 2024-09-09 15:36:33

老问题,但我刚刚发现您可以从这样的数组创建 pin_ptr ,然后 reinterpret_cast 结果。

    pin_ptr<unsigned char> pinned = &buffer[0];
    unsigned char* unsignedBufferPtr = pinned;
    char* bufferPtr = reinterpret_cast<char*>(unsignedBufferPtr);

然后您可以对结果使用reinterpret_cast

Old question, but I just found out that you can create a pin_ptr<unsigned char> from such an array and then reinterpret_cast the result.

    pin_ptr<unsigned char> pinned = &buffer[0];
    unsigned char* unsignedBufferPtr = pinned;
    char* bufferPtr = reinterpret_cast<char*>(unsignedBufferPtr);

You can then use a reinterpret_cast on the result

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