Как передать строку из dll в советника

 

Какой самый правильный способ?

Придумал такой способ.

Из dll экспортирую следующего вида функцию:

void TestCopyStr(wchar_t* wszBuf, int nSizeInWord)
{
        const wchar_t* wszTest = L"test string";
        wcsncpy_s(wszBuf, nSizeInWord, wszTest, _TRUNCATE);
}


В советнике делаю следующее:

#import "Test.dll"
  void TestCopyStr(string& sTestStr, int nSizeInWords);
#import

...
string sTest;
sTest = "          .....";
TestCopyStr(sTest, 15);
Print(sTest);
...


Вроде работает. Мож кто делал что нить подобное?

 
Описанный Вами способ лучший из имеющихся. Единственное, строку перед вызовом DLL лучше аллоцировать вот так:
#import "Test.dll"
  void TestCopyStr(string& sTestStr, int nSizeInWords);
#import

...
string sTest;
StringInit(sTest,N);          // <<<<<<<<<<
TestCopyStr(sTest,N);
Print(sTest);
...
 
mql5:
Описанный Вами способ лучший из имеющихся. Единственное, строку перед вызовом DLL лучше аллоцировать вот так:



Понял, спасибо большое!

Причина обращения: