![]() |
|
Модераторы: Akina |
![]()
|
|
| mdsoul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 23.11.2006 Репутация: нет Всего: нет |
Столкнулся с такой проблемой:
необходимо разработать библиотеку на C++, реализовав в ней простой класс, а методы этого класса необходимо экспортировать в VB. Есть готовый пример, но не пойму некоторых вещей: в С++ объявлен класс class __declspec( dllexport ) CBook : public CPublication { _TCHAR Author [MAX_LENGTH]; public: CBook(); ~CBook(); _TCHAR* __stdcall GetAuthor(); void __stdcall SetAuthor( _TCHAR * ); }; данная dll'ка подключается в VB следующим загадочным для меня образом Public Declare Function GetAuthor Lib "Work2.dll" _ Alias "?GetAuthor@CBook@@QAGPAGXZ" ( _ ByVal obj As Long) As String Public Declare Sub SetAuthor Lib "Work2.dll" _ Alias "?SetAuthor@CBook@@QAGXPAG@Z" ( _ ByVal obj As Long, ByVal nam As String) Загадкой для мня является адрес этих методов - "?SetAuthor@CBook@@QAGXPAG@Z" что это такое и как мне получить адрес для моего метода? |
|||
|
||||
| BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 5 Всего: 10 |
Это декорированные имена функций. Почитай в MSDN о декорации имен. -------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
| mdsoul |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 34 Регистрация: 23.11.2006 Репутация: нет Всего: нет |
Спасибо! Дело оказалось довольно простым. Ответ нашел в статье описания декорирования имен
|
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |