Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ XML ошибка формата https://www.cyberforum.ru/ cpp/ thread123873.html
не знаю куда еще написать, браузер при открытии xml пишет XML Parsing Error: not well-formed Location:...
Правильное чтение из файла! C++
Помогите пожалуйста, уже опробовал все((( Суть задачи такая, есть файл data.txt в нем есть числа выглядит он так: 200,100,100, 100, 300 Ниже представлен код программы, которая просит ввести...
C++ Функции!
Приношу свои извинения за этот глупый вопрос, я начинающий программист и сейчас прохожу урок Функции, но не могу понять, очень не понятно описывается, подскажите что такое функции и для чего они...
C++ Любопытственная ошибка В программе глобально объявлен буфер для передачи сообщений по каналу: char MsgBuf; Далее при формировани сообщения: MsgBuf="go"; Следующая ошибка: error C2440: '=' : cannot convert from... https://www.cyberforum.ru/ cpp/ thread123262.html
C++ Перевод из Паскаля в СИ. https://www.cyberforum.ru/ cpp/ thread123250.html
Доброго времени суток. Помогите перевести программу из паскаля в СИ. 1 программа: Program oblast; uses crt; var a,b,z:real; c:boolean; begin clrscr; write('Введите a='); readln(a);
Динамические потоки c обрабатываемой памятью C++
Нужна ваша помощь. #include "WinThread.h" LPVOID hf1,hf2,hf3; iXml* Tr; AnsiString str; std::vector<GraphObj *> *GNO; typedef struct Params
C++ из паскаля в си_1
program kontrolnaya; uses crt; var a,b,z,r:real; begin clrscr; write('a=');readln(a); write('b=');readln(b); write('r=');readln(r); if (((a-5)*(a-5)+b*b<r*r) and not((a+5)*(a+5)+b*b<r*r)) or...
C++ из паскаля в си_2 пожалуйста, помогите переписать на с++(((((((((((((( program kontr; uses crt; const nmax=100; type mas=array of integer; procedure Vvod(var v:mas;var x:byte); var i:byte; begin https://www.cyberforum.ru/ cpp/ thread122999.html
C++ В каком SDK находятся библиотечные файлы Urlmon.lib winmm.lib https://www.cyberforum.ru/ cpp/ thread122899.html
В каком SDK находятся библиотечные файлы Urlmon.lib winmm.lib? Я предполагал что в Direct SDK(у меня DirectX SDK 2006), однако там не нашел. Может кто подскажет где находятся и какую...
C++ Транслятор с паскаля на С Салют! Можете привести самый простой пример транслятора с паскаля на С, заранее спасибо https://www.cyberforum.ru/ cpp/ thread122831.html
Evg
Эксперт CАвтор FAQ
21146 / 8162 / 628
Регистрация: 30.03.2009
Сообщений: 22,463
Записей в блоге: 30
13.03.2011, 12:21 0

Теория плагинов

13.03.2011, 12:21. Просмотров 27224. Ответов 40
Метки (Все метки)

Ответ

Цитата Сообщение от Iron Bug Посмотреть сообщение
P.S. но в моей реализации там есть "фабрики" - функции для создания и уничтожения представителя класса, реализованные внутри библиотеки. это требуется для совместимости библиотек, собранных разными компиляторами. ибо там выделение памяти разное и прочие различия имеются. сами "фабрики" имеют фиксированные имена и также цепляются через dlsym
Скажем так, чтобы уметь запустить функцию из подгруженной в run-time динамической библиотеки, нужно уметь как-то найти эту функцию. Единственный для этого способ - это по символьному имени функции. Надёжным образом это можно сделать только для тех функций (и переменных), имена которых НЕ подвергаются манглированию со стороны компилятора. Таким свойством обладают только функции (и переменные), реализованные на Си (или на Си++ внутри блока extern "C"). Поэтому такая "фабрика" - это единственный способ вызвать создание объекта извне библиотеки

Цитата Сообщение от Iron Bug Посмотреть сообщение
другой реализации "экспорта класса", кроме экспорта его данных, создать просто нельзя. ибо разные компиляторы создают разные физические реализации объекта
Не только поэтому. В языках Си и Си++ попросту нет возможности работать с динамически созданными типами. Любой тип, с которым идёт работа, должен быть виден в момент компиляции.

Цитата Сообщение от Iron Bug Посмотреть сообщение
поэтому мой метод - единственно возможный для использования перегруженных методов из динамических библиотек, собственно.
Именно так. А способов вызвать "новый" метод (т.е. не описанный в базовом классе), коими являются set и get в варианте niXman'а, попросту нет. В цитате слово "метод" выделил жирным - лучше в таком контексте использовать слово "способ", чтобы не путать с методами языка Си++

Вернуться к обсуждению:
Теория плагинов
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.03.2011, 12:21

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

Как видео с камеры отобразить в браузере без использования сторонних плагинов?
Есть простенький веб сервер. на компьютере, на котором развернут сервер, есть встроенная камера....

Реализовать систему плагинов (модулей), каждый из которых должен работать в отдельном потоке
Всем доброго времени суток, не могли бы вы мне помочь реализовать систему плагинов( модулей)....

Взаимодействие плагинов с ядром
Разбираю теорию плагинов. Как выполнить какую либо функцию из .so, это понятно и просто, а вот как...

Установка плагинов cppunit + ecut в Eclipse
Всем доброго времени суток, не могу установить плагины для Eclipse - cppunit + ecut, нужны для юнит...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.