1、打开VS2023,创建C++控制台应用程序。
2、添加远程liunx计算机
打开工具->选项,点击跨平台。添加远程主机。
3、打开属性,设置目标文件扩展名:.so,配置类型:动态库(.so)以及远程生成计算机。
4、删除main.cpp,添加lib.cpp。输入代码
extern "C"
{
int test(int a, int b)
{
return a + b;
}
}
5、点击生成,VS自动连接远程linux主机,并生成.so文件
6、使用winScp连接Linux主机,下载.so文件。
7、创建.net6控制台应用程序,测试调用.so文件,输入以下代码:
using System.Runtime.InteropServices;
namespace Linux.Test.Net6
{
internal class Program
{
const string dllPath = @"libLinuxOfAfteC.so";
//1、基本类型的传递
[DllImport(dllPath, CallingConvention = CallingConvention.Cdecl)]
public static extern int test(int a, int b);
static void Main(string[] args)
{
int sum=test(1,2);
//int sum = 2;
Console.WriteLine($"Hello, World!{sum}");
}
}
}
因项目名称太长,把程序集名称改为test。
8、发布
9、通过winSCP上传至Linux中
11、执行
使用putty连接Linux。
执行命令修改执行权限:
sudo chmod 777 test
执行:
./test