Страница: 1 |
Вопрос: СРОЧНО: С++ И ВБ | Добавлено: 03.07.05 22:58 |
Автор вопроса: ![]() |
СРОЧНЕЕ НЕКУДА:
1) В С++ создать длл c глобальным классом и юзать его в ВБ. Нифига даже с MFC не получается. 2) Вызывать функции ВБ из С++. Я уже спрашивал, но , блин, поиск нифига не ищет - на всё одна ошибка. |
Ответы | Всего ответов: 12 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #1 | Добавлено: 04.07.05 03:02 |
1. Берём один из визардов шестой студии, тот, который создаёт COM-класс. Получаем рыбу этого класса. Вставляем в неё код. Компилируем. RegSvr32.exe. Юзаем из VB.
2. Читаем MSDN: хау ту юз COM обджектс фром C++. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 71 Ответов: 321 |
Профиль | Цитата | #2 | Добавлено: 05.07.05 03:11 |
1)ВБ Не видит функции. Мож я не так делаю:
class Engine2D :
public IDispatchImpl<IEngine2D, &IID_IEngine2D, &LIBID_ENGINE2DLib>, public ISupportErrorInfo, public CComObjectRoot, public CComCoClass<Engine2D,&CLSID_Engine2D> { public: Engine2D() {} void AA3(){} BEGIN_COM_MAP(Engine2D) COM_INTERFACE_ENTRY(IDispatch) COM_INTERFACE_ENTRY(IEngine2D) COM_INTERFACE_ENTRY(ISupportErrorInfo) END_COM_MAP() //DECLARE_NOT_AGGREGATABLE(Engine2D) // Remove the comment from the line above if you don't want your object to // support aggregation. DECLARE_REGISTRY_RESOURCEID(IDR_Engine2D) // ISupportsErrorInfo STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid); void AA2(){} // IEngine2D public: void AA1(){} }; И ни одну из 3х не видит, Где и как их надо объявлять 2)Не, мсдн - это перебор, да и попробуй найди чё-нить. Хорошо если (не)сразу попадёшь на нужный раздел... там типа asm{pop AA push XX call Back} |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #3 | Добавлено: 05.07.05 05:18 |
1. http://bbs.vbstreets.ru/viewtopic.php?p=126533#126533
2. Ещё ни разу не видел в MSDN такого. И это не перебор, а самое то. |
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 780477 Вопросов: 72 Ответов: 1297 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 05.07.05 19:25 |
progz.ru |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 71 Ответов: 321 |
Профиль | Цитата | #5 | Добавлено: 12.07.05 23:49 |
А как объявить переменную(в С++, но не Property Get/Let) чтоб из VB её спокойно использовать. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 71 Ответов: 321 |
Профиль | Цитата | #6 | Добавлено: 12.07.05 23:50 |
Причем тип из внешней библиотеки(виндовская какая-нить). |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 71 Ответов: 321 |
Профиль | Цитата | #7 | Добавлено: 13.07.05 23:13 |
Ну или объявить Property в длл на С++ с типом допустим LPDIRECTDRAW7? |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 14.07.05 00:31 |
Боюсь, что никак. Если ты хочешь инкапсулировать DirectX в сишной DLL, лучше сделай ее объектом, который будет инкапсулировать все интерфейсы, и, в частности, будет скрывать указатель на интерфейс DirectDraw. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 86 Ответов: 920 |
Профиль | Цитата | #9 | Добавлено: 14.07.05 01:00 |
nu, mozhne ved` sdelat` funkciyu kotoraya tebe return'et` etot object... |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 14.07.05 05:46 |
Тогда не называй это Property. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 71 Ответов: 321 |
Профиль | Цитата | #11 | Добавлено: 14.07.05 18:27 |
ну вообще я просто хочу написать пару функций.
Что такое с oleautomation? Как мне объявить тип (пару указателей (на интерфейс) и пару переменных) . Он мне выдает warning:"это не совместимо с oleautomation" - что-то в этом роде, но плохо не это, плохо то, что в VB я не могу объявить переменную этого типа, хотя всё видит. |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 71 Ответов: 321 |
Профиль | Цитата | #12 | Добавлено: 15.07.05 00:55 |
Хххорошо.
А как дело обстоит с событиями? Можно конечно сделать вручную(pop;pop;call...), но хотелось бы натуральное событие. |
Страница: 1 |
|