Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> экспортирование методов класса С++.dll -> VB 
:(
    Опции темы
mdsoul
Дата 24.11.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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" что это такое и как мне получить адрес для моего метода?
PM MAIL   Вверх
BorisVorontsov
Дата 24.11.2008, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

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



Цитата(mdsoul @  24.11.2008,  16:53 Найти цитируемый пост)
что это такое


Это декорированные имена функций. Почитай в 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]
PM MAIL ICQ GTalk   Вверх
mdsoul
Дата 26.11.2008, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо! Дело оказалось довольно простым. Ответ нашел в статье описания декорирования имен
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


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

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


 




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


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

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