Получение строк из dll - страница 2

 
Alexander Dubovik:

Пишу dll, из которой надо перегонять строки в MQL (NULL-terminated ANSI).


Есть проблемы с передачей строки из библиотеки динамической загрузки? Помощь квалифицированная требуется? 

 
Алексей Тарабанов:

Есть проблемы с передачей строки из библиотеки динамической загрузки? Помощь квалифицированная требуется? 

Прям даже не знаю, что ответить. Нужна помощь с синтаксисом MQL, не более того. И бесплатно, да.
 
Я не оказываю платных услуг. 
 
Алексей Тарабанов:
Я не оказываю платных услуг. 
Тогда вся информация - в теме.
 
Maxim Kuznetsov:

во так вот напрямую как

конечно же нет . Но везде (и всегда, и даже помимо MQL) делается обвязка чтобы в конечном итоге вызвать

func(a,x,y); // вместо a.func(x,y)

Повсюду, эт да. Но вот, признаться, от МКЛ, как "близкого родственника" С++, этого не ожидал.))

Спасибо за инфу.

 
Alexander Dubovik:

Это как бы и приводит к WinAPI-style. Размер строки ведь заранее я не знаю.

ну да, winapi стиль. если буфер мал по размеру - возвращать нужный размер.

или работать с внутренним представлением строки в mql как выше сказали. кстати раньше передача строки в терминал была прямо в примере длл идущем с любым терминалом, так что это вполне нормальная практика

 
TheXpert:

работать с внутренним представлением строки в mql как выше сказали

Это намного большее зло, чем даже WinAPI-style.

 
Alexander Dubovik:

Это намного большее зло, чем даже WinAPI-style.

почему? и что по-вашему не зло?

 
TheXpert:

почему? и что по-вашему не зло?

Как это почему? Потому, что внутреннее представление MQL string может быть изменено в следующем билде MetaTrader без уведомлений и без документирования этих изменений.

Не зло - это сказать компилятору MQL, чтобы он принял из dll указатель, и отдать этот указатель в CharArrayToString.

 
Alexander Dubovik:

Это как бы и приводит к WinAPI-style. Размер строки ведь заранее я не знаю.

Это как?