在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*类型的字符串。