gpt4 book ai didi

托管 C++ 中的 C# 方法

转载 作者:行者123 更新时间:2023-11-30 18:05:50 25 4
gpt4 key购买 nike

我正在创建一个 c# dll 库来扫描进程内存。我有静态方法:

int searchASCII(int pid, SByte[] text, int pos)
{
ReadProcessApi RApi = new ReadProcessApi(pid, pos);
return RApi.ASCIIScan(text);
}

并希望使其在 Visual C++ Managed 中可用。如果我想在 C++ 中调用这样的方法,应该将哪种类型用于文本参数:searchASCII((int)pid, (char[])text, (int)position) ?

在当前情况下我得到错误:

"cannot convert parameter from 'char [6]' to 'cli::array<Type,dimension> ^' "  

最佳答案

如果您想在 C++\CLI 中调用 C# 函数,您需要使用相同的类型。 C# 中的数组实际上是一个 cli::array<T,d>在 C++\CLI 中。您将不仅能够转换 C++ char[]cli:array<T,d> .我会看一下 native \托管 interop在 MSDN 上。

要从 C++\CLI 调用该函数,您必须创建一个这样的数组:

cli::array<System::SByte> ^text = gcnew cli::array<System::SByte>(/* some_size */);

关于托管 C++ 中的 C# 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5186440/

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