Как связать библиотеку C ++ в проекте C

Вот простой фрагмент кода, который можно использовать в качестве руководства:

//first at the class level, create a private variable for the client.
private Service1Client _client;
private Button _addButon;
private TextView _txtDeptName;

//Initialize the _client in the OnCreate() method.
protected override void OnCreate(Bundle bundle)
{
     base.OnCreate(bundle);

     var endpoint = new EndpointAddress("http://<ipAddress:port>/Service1.svc");

     var binding = new BasicHttpBinding{
        Name = "basicHttpBinding",
        MaxBufferSize = 2147483647,
        MaxReceivedMessageSize = 2147483647
    };

    TimeSpan timeout = new TimeSpan(0, 0, 30);
    binding.SendTimeout = timeout;
    binding.OpenTimeout = timeout;
    binding.ReceiveTimeout = timeout;

    _client = new Service1Client(binding, endpoint);
    _client.AddDeptCompleted += ClientAddDeptCompleted;

    _addButton = FindViewById<Button>(Android.Resources.Id.Add);
    _addbutton.Click += AddButton_Clicked;

    _txtDeptName = FindViewbyId<TextView>(Android.Resources.Id.Name);
}

//Then within the event handlers, do something like this
public void AddButton_Clicked(object sender, EventArgs e)
{
     _client.AddDeptAsync(_txtDeptName.Text);
}

//Handle the request completed event.
private void ClientAddDeptCompleted(object sender, AddDeptCompletedEventArgs addDeptCompletedEventArgs)
{
     //TODO: Something with the notification that the request has completed.
}

Вы также должны следовать аналогичному шаблону для других кнопок и служебных вызовов. Прошу прощения, если я сделал некоторые опечатки. Я перехожу из немного памяти и некоторых инструкций WCF на сайт Xamarin.

2
задан Matthieu Brucher 4 March 2019 в 22:28
поделиться

1 ответ

Вы должны использовать компоновщик C ++ или использовать g++ в качестве драйвера ссылки вместо gcc.

Проблема в том, что базовый компоновщик не будет связываться с библиотеками времени выполнения C ++ (то же самое было бы верно для статической библиотеки Fortran). Драйвер C ++ для вашего компилятора добавит вам эти флаги.

0
ответ дан Matthieu Brucher 4 March 2019 в 22:28
поделиться