Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Проявляй активность в сообществе. Увеличивай ленту достижений!
mql
10
mql 2015.08.19 11:55 

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

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

Из 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);
...


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

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

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



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

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий