Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Поправка- интерфейсная часть должна быть именно на плюсах
... и даже ни разу не extern "C".
Я про extern "C" и не говорил, вот живой работающий пример из моей ДЛЛ. Эта функция вызывается из МТ4 и передает заранее заполненный буфер в управляемый класс Client, а тот по named pipe отсылает буфер в мою прогу на C#
Насчет плюсов - да, можно использовать static функции класса как dllexport, динамические нельзя, т..к их адреса неизвестны в момент компиляции.
Я про extern "C" и не говорил
Насчет плюсов - да, можно использовать static функции класса как dllexport, динамические нельзя, т..к их адреса неизвестны в момент компиляции.
Признак static (кстати, советуют использовать nameless namespace) как бы не особо совместим с dllexport,
поскольку предполагает, что даже при линковке функция будет недоступна из соседних модулей этого же проекта.
.
А что это за динамические функции в плюсах? ;-)
Ну да, Вы говорили, что интерфейсная часть должна быть целиком на си. :-)
Уважаемый, читать Вас очень интересно... но Вам точно стоит срочно посмотреть семантику keyword'а static!
Признак static (кстати, советуют использовать nameless namespace) как бы не особо совместим с dllexport,
поскольку предполагает, что даже при линковке функция будет недоступна из соседних модулей этого же проекта.
.
А что это за динамические функции в плюсах? ;-)
То есть функция TestFunction(int) не будет видна из другого файла, потому, что она static??? Почитайте про разницу обычными static функциями и static функциями - членами класса.
Она будет видна при условии, что класс TestClass будет виден. Более того, ее можно вызывать без создания экземпляра класса
int i = TestClass::TestFunction(1);
если Вы не согласны, пишите Страуструпу, порадуйте старика :))) http://www2.research.att.com/~bs/homepage.html
То есть функция TestFunction(int) не будет видна из другого файла, потому, что она static??? Почитайте про разницу обычными static функциями и static функциями - членами класса.
которые есть методы. Методы функциями как-то не доводилось называть...
Не обратил внимание, что "класса" ;-). Мои извинения :-).
Эх, всю охоту мне испортили! :-( Про разницу в курсе.
.
Экспортирую всегда обычные функции, не члены класса.
Поэтому и не обратил внимания.