Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обратиться к функции класса 
:(
    Опции темы
=Женек=
Дата 2.8.2014, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



Господа, ламерский вопрос.
Нашел небольшую библиотечку, которой нужно воспользоваться, не могу обратиться к ее функциям.
Вот как объявлен класс
Код


//Class containing Android Bluetooth functions
class DroidBT {

    public:

    //Bluetooth objects
    _di_JBluetoothAdapter m_JBluetoothAdapter;
    _di_JBluetoothDevice m_JBluetoothDevice;
    _di_JBluetoothSocket m_JBluetoothSocket;
    _di_JInputStream m_JInputStream;
    _di_JOutputStream m_JOutputStream;

    //UUID of SPP/RFCOMM devices
    _di_JUUID MY_UUID = TJUUID::JavaClass->fromString(StringToJString("00001101-0000-1000-8000-00805F9B34FB"));


    //Threads
    DroidBTConnectThread *m_DroidBTConnectThread;
    DroidBTRequestThread *m_DroidBTRequestThread;
    DroidBTResponseThread *m_DroidBTResponseThread;



    unsigned char Response[32] = {0};


    //Connection flags
    bool ConnectFlag = false;

    //IO flags
    bool ReadFlag, WriteFlag = false;

 
    //Bluetooth Functions
    DroidBT(void);
    String CheckBluetooth(void);
    std::list<String> GetBonded(void);
    void ConnectToDevice(String);
    void CloseConnection(void);
    void ReadFromDevice(bool);
    void WriteToDevice(void);



};


Вот как функция GetBonded описана дальше
Код




//Gets a list of paired/bonded devices from the adapter and returns the list
std::list<String> DroidBT::GetBonded(void){
    _di_JSet externalDevices;
    _di_JIterator it;
    std::list<String> result;


    m_JBluetoothAdapter = TJBluetoothAdapter::JavaClass->getDefaultAdapter();
    externalDevices = m_JBluetoothAdapter->getBondedDevices();

    //The following is to convert the JSet to a std::list
    it = externalDevices->iterator();

    while(it->hasNext()) {

        _di_ILocalObject i = _di_ILocalObject(it->next());
        m_JBluetoothDevice = TJBluetoothDevice::Wrap(i->GetObjectID());
        result.push_back(JStringToString(m_JBluetoothDevice->getName()) + "  || MAC=" + JStringToString(m_JBluetoothDevice->getAddress()));
    }

    return result;
} 

Это в файле DroidBT.hpp
Я его подключил к unit1.cpp. Как вызвать при загрузке формы например CheckBluetooth ?
Я делаю так:
Код


DroidBT bt;
void __fastcall TForm1::FormShow(TObject *Sender)
{
 String s = bt.CheckBluetooth(); // Make sure bluetooth is enabled
    if (s.Pos(L"disabled") != 0)
    {
        ShowMessage(L"Please turn on Bluetooth :D and Retry");
        exit;
    }

TStringList * list = bt.GetBonded();    // produce a list of bonded/paired devices
}

Но мне ответ на bt.GetBonded пишет [CLANG Error] Unit1.cpp(44): no viable conversion from 'std::list<String>' to 'System::Classes::TStringList __borland_class *__strong'

Это сообщение отредактировал(а) =Женек= - 2.8.2014, 15:36
PM MAIL   Вверх
Cheloveck
Дата 2.8.2014, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 1
Всего: 32



Цитата(=Женек= @  2.8.2014,  16:24 Найти цитируемый пост)
no viable conversion from 'std::list<String>' to 'System::Classes::TStringList __borland_class *__strong'

У тебя проблема с пониманием сообщения? =)
Замени
Код

TStringList * list = bt.GetBonded(); 

на
Код

std::list<String> list = bt.GetBonded(); 


Это сообщение отредактировал(а) Cheloveck - 2.8.2014, 15:58


--------------------
user posted image
PM Jabber   Вверх
=Женек=
Дата 2.8.2014, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



Спасибо.
list->Count заменил на list.size()

а это тогда как заменить
Код

        ListView1->Items->Item[i]->Text = list->Names[i];
        ListView1->Items->Item[i]->Detail = list->ValueFromIndex[i];


PM MAIL   Вверх
Cheloveck
Дата 2.8.2014, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: 1
Всего: 32



Я не знаком с VCL, поэтому без контектса не понимаю, что делают эти свойства. Советую почитать доки по std::list.
А вообще, нельзя программировать на C++ не зная STL!


--------------------
user posted image
PM Jabber   Вверх
=Женек=
Дата 2.8.2014, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



Вот откуда собственно пошло https://forums.embarcadero.com/thread.jspa?messageID=660769
Товарищ сначала написал main с обычной библиотекой, потом дописал свою DroidBT.hpp  но и она компилится с ошибками...
Какая же это сложная вещь - "copypaste ориентированное" программирование.
PM MAIL   Вверх
=Женек=
Дата 2.8.2014, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 548
Регистрация: 20.2.2005

Репутация: 1
Всего: 1



//////////

Это сообщение отредактировал(а) =Женек= - 3.8.2014, 11:57
PM MAIL   Вверх
xvr
Дата 4.8.2014, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Будет как то так

Код

std::list<String> list = bt.GetBonded(); 
ListView1->Items->Clear();  // clear list and rebuild it
Listview1->BeginUpdate();
for(std::list<String>::iterator i = list.begin(); i != list.end(); ++i)
    {
        ListView1->Items->Add(*i);
    }
ListView1->EndUpdate();

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.