Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];

Вниз

Ворпрос про VB   Найти похожие ветки 

 
KSergey ©   (2008-02-15 18:12) [0]

Пытался спросить в тематической конференции на SQL.ru, но чета почти безуспешно.

Может тут кто что подскажет. Беда в том, что хотелось бы сразу маленький рабочий код :)

Проблема:
Необходимо из C++ проги вызвать функцию, которая находится в VB"шной dll. Прототип этой функции (в терминах С++) таков:

void VBfoo(char* strData);

При вызове VBfoo параметр strData указывает на некий буфер, содержащий null-terminated строку.

Проблемы:
а) как описать эту функцию на VB;
б) как переданные данные через strData переделать к типу VB String.

Почитамши форум уже понял, что надо рассматривать даный параметр как массив байт и копировать посимвольно в VB-строку до первого нуля. Беда, однако, в полном отсутсвии знаний у меня синтаксиса VB, из-за чего не могу нацарапать декларацию данной функции на VB. А мне надо пример написать для пользователей VB...

Я честно искал по форуму и тынтету. Но мне попадались только "обратные случаи", когда в VB выделается буфер и уже он заполняется внешней функцией.

----------------
Мне верно возразили, что "DLL, создаваемые VB (4-6), являются ActiveX DLL. Это значит, что в DLL не будет точки входа VBfoo..."
Но просто описывать как оно на самом деле - не очень охота чтобы излишне не путаться, пусть считаем, что это возможно (на самом деле exe - на VB, из него вызывается функция из dll-ки на C++, в которую передается адрес callback внутри VB проги).

Вот ветка на sql.ru
http://sql.ru/forum/actualthread.aspx?tid=525748


 
Правильный_Вася   (2008-02-15 18:25) [1]


> Проблема:Необходимо из C++ проги вызвать функцию, которая
> находится в VB"шной dll.
> Проблемы:а) как описать эту функцию на VB;

какое-то противоречие - функция уже есть или ее только писать?
если писать, то нафига в бейсике?


 
palva ©   (2008-02-15 20:11) [2]

На VB нельзя написать обычную dll, к которой можно было бы обратиться по написанному вами прототипу. В VB 6.0 можно написать ActiveX библиотеку. В VB .NET можно написать нетовскую dll, к которую из Windows приложения тоже не понятно как вызывать.


 
KSergey ©   (2008-02-18 09:59) [3]

> Правильный_Вася   (15.02.08 18:25) [1]
> какое-то противоречие - функция уже есть или ее только писать?
> если писать, то нафига в бейсике?

Нужно написать пример, пример использования. На VB.

> palva ©   (15.02.08 20:11) [2]

Я тама под чертой специально написал ответ ан это вопрос.
Еще раз: все не так, но неужели это так принципиально?

Задача: из VB программы вызывается процедур. Вызывающая сторона на C++ предполагает такой прототип:

void VBfoo(char* strData);

Вопрос: как на VB написать функцию, которая бы подошла к такому прототипу?



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.043 c
2-1204113115
Прохожий 001
2008-02-27 14:51
2008.03.30
Как сделать так, чтобы при подключении firebird не вешал приложен


2-1204346280
хаас
2008-03-01 07:38
2008.03.30
Вариантная запись


2-1204417319
Аврам
2008-03-02 03:21
2008.03.30
получить список ссылок


2-1204113354
tytus
2008-02-27 14:55
2008.03.30
EndThread - закрывается приложение. Почему?


15-1202559091
md10
2008-02-09 15:11
2008.03.30
какую СУБД выбрать выбрать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский