在C#中调用C++函数并返回const char*类型的值,可以使用Interop服务来实现。以下是一个示例代码:
C++代码(generate_project_code.cpp):
const char* generateProjectCode()
{const char* code = "Generated code";return code;
}
C++代码需要编译为动态链接库(DLL)。
C#代码:
using System;
using System.Runtime.InteropServices;class Program
{[DllImport("generate_project_code.dll", CallingConvention = CallingConvention.Cdecl)]public static extern IntPtr generateProjectCode();static void Main(){IntPtr codePtr = generateProjectCode();string code = Marshal.PtrToStringAnsi(codePtr);Console.WriteLine(code);}
}
在C#中,使用DllImport特性将C++函数声明为外部函数。在Main方法中,调用generateProjectCode函数并将返回的指针转换为const char*类型的字符串。