как на VB?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
bevaine2000
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 15.04.2005 (Пт) 23:45

как на VB?

Сообщение bevaine2000 » 05.06.2005 (Вс) 11:53

есть кусок кода написнного на C++, как это будет выглядеть на VB?
class WIDCOMMSDK CBtIf
{
public:

CBtIf();
virtual ~CBtIf();

// Application can use this function to start an inquiry.
//
BOOL StartInquiry();


// Application can use this function to stop an inquiry.
//
void StopInquiry();


// Application can use this function to start service discovery
//
BOOL StartDiscovery (BD_ADDR p_bda, GUID *p_service_guid);

// Servers should call this method to switch role to master if
// they want to accept multiple connections
static BOOL SwitchRole(BD_ADDR p_bda, MASTER_SLAVE_ROLE new_role);

//

// Define return code for Bond function
//
typedef enum
{
SUCCESS,
ALREADY_BONDED,
BAD_PARAMETER,
FAIL
} BOND_RETURN_CODE;

// Initiate dedicated bonding
BOND_RETURN_CODE Bond(BD_ADDR bda, LPTSTR pin_code);

// query if a device is bonded
BOOL BondQuery(BD_ADDR bda);

// Remove Bonding
BOOL UnBond(BD_ADDR bda);

// Application can use this function to get list of services on the remote device
//
int ReadDiscoveryRecords (BD_ADDR p_bda, int max_size, CSdpDiscoveryRec *p_list, GUID *p_guid_filter = NULL);

virtual void OnInquiryComplete (BOOL success, short num_responses) {}// {}
virtual void OnDeviceResponded (BD_ADDR bda, DEV_CLASS devClass, BD_NAME bdName, BOOL bConnected) {} // = 0;
virtual void OnDiscoveryComplete () {}// = 0;

// standard GUID values for common Bluetooth service classes
static const GUID guid_SERVCLASS_SERVICE_DISCOVERY_SERVER;
static const GUID guid_SERVCLASS_BROWSE_GROUP_DESCRIPTOR;
static const GUID guid_SERVCLASS_PUBLIC_BROWSE_GROUP;
static const GUID guid_SERVCLASS_SERIAL_PORT;
static const GUID guid_SERVCLASS_LAN_ACCESS_USING_PPP;
static const GUID guid_SERVCLASS_DIALUP_NETWORKING;
static const GUID guid_SERVCLASS_IRMC_SYNC;
static const GUID guid_SERVCLASS_OBEX_OBJECT_PUSH;
static const GUID guid_SERVCLASS_OBEX_FILE_TRANSFER;
static const GUID guid_SERVCLASS_IRMC_SYNC_COMMAND;
static const GUID guid_SERVCLASS_HEADSET;
static const GUID guid_SERVCLASS_CORDLESS_TELEPHONY;
static const GUID guid_SERVCLASS_INTERCOM;
static const GUID guid_SERVCLASS_FAX;
static const GUID guid_SERVCLASS_HEADSET_AUDIO_GATEWAY;
static const GUID guid_SERVCLASS_PNP_INFORMATION;
static const GUID guid_SERVCLASS_GENERIC_NETWORKING;
static const GUID guid_SERVCLASS_GENERIC_FILETRANSFER;
static const GUID guid_SERVCLASS_GENERIC_AUDIO;
static const GUID guid_SERVCLASS_GENERIC_TELEPHONY;

private:
BOOL m_bInquiryActive;
BOOL m_bDiscoveryActive;

BOOL m_tempRegistry;
GUID m_TempRegistryGUID;
void DeleteTempRegistry();
BOOL AddTempRegistry(GUID *p_GUID);

CWBtAPI *m_pBtApi;

friend class CBtIfFriend;

// This class will not support the compiler-supplied copy constructor or assignment operator,
// so these are declared private to prevent inadvertent use by the application.
CBtIf(const CBtIf & x);
CBtIf& operator= (const CBtIf & x);
};

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 05.06.2005 (Вс) 15:18

Здесь нет кода. Здесь одни объявления.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

bevaine2000
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 15.04.2005 (Пт) 23:45

Сообщение bevaine2000 » 05.06.2005 (Вс) 22:25

я знаю что здесь идет вызов библиотек, как это выглядит на VB я не знаю. :cry:

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.06.2005 (Вс) 22:27

GSerg писал(а):Здесь нет кода. Здесь одни объявления.

А объявления - не код? ;-)

(Дизклеймер: Я знаю, что ты знаешь, что я знаю, что ты знаешь.)

2bevaine2000: аналогичный данному набору объявлений код на VB будет состоять только из нижеприведённого, т.к. предобъявления классов и процедур в VB не допускаются.
Код: Выделить всё
Enum BOND_RETURN_CODE
SUCCESS
ALREADY_BONDED
BAD_PARAMETER
FAIL
End Enum
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.06.2005 (Вс) 22:28

bevaine2000 писал(а):я знаю что здесь идет вызов библиотек

ты не прав.
Изображение

bevaine2000
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 15.04.2005 (Пт) 23:45

Сообщение bevaine2000 » 06.06.2005 (Пн) 9:52

Меня интересует именно вот этот момент
Код: Выделить всё
class WIDCOMMSDK CBtIf
{
public:

CBtIf();
virtual ~CBtIf();

// Application can use this function to start an inquiry.
//
BOOL StartInquiry();

на VB это будет так?
Код: Выделить всё
Private Declare Function CBtIf Lib "WIDCOMMSDK" ()
A = CBtIf.StartInquiry

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.06.2005 (Пн) 10:59

bevaine2000 писал(а):Меня интересует именно вот этот момент
Код: Выделить всё
class WIDCOMMSDK CBtIf
{
public:

CBtIf();
virtual ~CBtIf();

// Application can use this function to start an inquiry.
//
BOOL StartInquiry();

на VB это будет так?
Код: Выделить всё
Private Declare Function CBtIf Lib "WIDCOMMSDK" ()
A = CBtIf.StartInquiry

Да нет, конечно! :x
Никакие функции в твоём коде не объявляются и не вызываются.
Изображение

bevaine2000
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 15.04.2005 (Пт) 23:45

Сообщение bevaine2000 » 06.06.2005 (Пн) 14:01

Уважаемый tyomitch можно не кричать а нормально объяснить, я же сказал что в СИ "не в зуб ногой". как в си происходит вызов библиотеки и ее функций?

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.06.2005 (Пн) 14:41

Ты хочешь, чтобы тебя в форуме "Visual Basic" научили C++? :-?


Напрягая свои телепатические способности, заключаю, что ты скачал какую-то видкоммовскую библиотеку для работы с блутузом, и нашёл там только С++-ные хедеры. И теперь ты пытаешься работать с этой библиотекой из VB. Так вот, просто так - не выйдет :-)
Чтобы вышло, нужно читать статьи GSerg-а про вызов функций по указателю и работу с не-IUnknown интерфейсами. Но ещё до этого неплохо бы маленько разобраться с C++, чтобы отличать предобъявления от вызовов функций из библиотек.
Последний раз редактировалось tyomitch 06.06.2005 (Пн) 14:44, всего редактировалось 1 раз.
Изображение

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 06.06.2005 (Пн) 14:44

короче: .H - это не .CPP :)

bevaine2000
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 15.04.2005 (Пт) 23:45

Сообщение bevaine2000 » 06.06.2005 (Пн) 14:52

tyomitch ты абсолютно прав в своих рассуждениях, не дашь ссылку на статью GSerg-a.

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 06.06.2005 (Пн) 15:02

bevaine2000 писал(а):Меня интересует именно вот этот момент
Код: Выделить всё
class WIDCOMMSDK CBtIf
{
public:

CBtIf();
virtual ~CBtIf();

//
BOOL StartInquiry();



конструктор и деструктор
и функция StartInquiry


bevaine2000 писал(а):на VB это будет так?
Код: Выделить всё
Private Declare Function CBtIf Lib "WIDCOMMSDK" ()
A = CBtIf.StartInquiry


нет. Вполне возможно это не реализовать на VB
или придется написать обертку
//<-
Mit freundlichen Grüßen
//->

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.06.2005 (Пн) 15:14

codemaster писал(а):нет. Вполне возможно это не реализовать на VB
или придется написать обертку

Реализовать-реализовать, просто через задний проход.
Статья GSerg-а об этом: http://vbstreets.ru/VB/Articles/65974.aspx
Кстати, там есть пара так и не исправленных фактических ошибок (VB прекрасно работает с не-IDispatch интерфейсами, и, как GSerg уже выяснил - ненамного хуже с не-IUnknown интерфейсами).
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 06.06.2005 (Пн) 15:46

Да, GSerg ленивый просто, да и времени чё-то не хватает :)
Думаешь, стоит написать ещё раз, собрав в одно место всё, что мы сейчас знаем? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

bevaine2000
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 15.04.2005 (Пт) 23:45

Сообщение bevaine2000 » 06.06.2005 (Пн) 15:54

я думаю что надо хотя бы в краце для таких как я

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 06.06.2005 (Пн) 15:56

Вот если бы кто-то написал статью с описанием общих терминов и технологий.
Что такое интерпретатор, компилятор, парсер, API, GUID (и GUI), IDispatch, маршаллинг, технология COM, технология NET, MFC и т. п.

ЗЫ. :lol: Что-то из перечисленного я, конечно, знаю :lol: ,
но статья не только для меня. :wink:

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 06.06.2005 (Пн) 16:13

Mikle писал(а):Вот если бы кто-то написал статью с описанием общих терминов и технологий.
Что такое интерпретатор, компилятор, парсер, API, GUID (и GUI), IDispatch, маршаллинг, технология COM, технология NET, MFC и т. п.


То получил-бы четыре(а может и больше :D ) тома, но уже не кнута :D
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 06.06.2005 (Пн) 16:23

Igor_123
Я имею ввиду без подробностей, в плане общего ознакомления, чтобы просто понимать о чем идет речь.

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 06.06.2005 (Пн) 16:26

Ну тогда на Эппелмана потянет :wink:
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 07.06.2005 (Вт) 11:52

tyomitch писал(а):
codemaster писал(а):нет. Вполне возможно это не реализовать на VB
или придется написать обертку

Реализовать-реализовать, просто через задний проход.



"Я нашел, как применить здесь нестирающиеся шины из
полиструктурного волокна с вырожденными аминными связями
и неполными кислородными группами.
Но я не знаю пока, как использовать регенерирующий
реактор на субтепловых нейтронах. Миша, Мишок! Как быть с реактором?"
Присмотревшись к устройству, я без труда узнал велосипед.
А. и Б. Стругацкие, Понедельник начинается в субботу
//<-
Mit freundlichen Grüßen
//->


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 190

    TopList