gpt4 book ai didi

c# - 将字符串数组从 C# 传递给 C 编程

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:29 25 4
gpt4 key购买 nike

我正在从 C# .Net 托管代码调用非托管 C 编程代码。但我无法将字符串数组作为参数传递给 .Net 函数C 中的函数:

dllmain(const int argc, const char *argv[]){}

请帮助我,如何从 C Sharp.Net 调用此函数

谢谢。

最佳答案

这里有一个方法可以做到这一点:

C#代码:

  1. 声明要从 C# 调用的 C 函数

    [DllImport("<DLL_File_Name>.dll", CharSet = CharSet.Auto, EntryPoint = "dllmain", ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
    public static extern void dllmain(ref string str1);
  2. 定义字符串

    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 100)]
    public string str1;
  3. 从 C# 代码调用 C 函数

        dllmain(ref str1);

C 代码:

  1. 函数原型(prototype)

    __declspec(dllexport) void __stdcall dllmain(char *str1);
  2. 函数定义

    void__stdcall dllmain(char *str1)
    {
    :
    }

希望对您有所帮助。 :-)

关于c# - 将字符串数组从 C# 传递给 C 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7644126/

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