MetaTrader 4 Client Terminal build 646: Умный поиск, книги в Маркете и обновление окна параметров MQL4-программы - страница 28
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Внутренняя функция
inline void err_dll_wchar_t(LPCWSTR sss)//(LPCWSTR nnn) // // sss) // чёрный ящик для длл
{
//////////////////////////////определение времени и даты
//setlocale(LC_ALL, ".1251");
struct tm *local;
time_t t;
t = time(NULL);
local = localtime(&t);
ofstream fout("err_dll.txt", ios_base::app); // создаём объект класса ofstream для записи и связываем его с файлом cppstudio.txt
if (fout.is_open() == 1) //если файл открылся, то работаем
{
fout << "\n\n";
fout << "============================================================================================================\n";
fout << asctime(local);
fout << sss << "\n"; // запись строки в файл
fout << "============================================================================================================\n";
fout << "\n\n";
fout.close(); // закрываем файл
}
else
{
ofstream fout("err_dll.txt.txt");
fout << "start\n";
fout.close();
}
}
Это её экспорт
extern "C" __declspec(dllexport) void test_string(LPCWSTR nnn)//(LPCWSTR nnn) // //
{
err_dll_wchar_t(nnn);
}
Результат.
09F5830C
09F5830C
А должно быть
test_string("Старт загрузки параметров"); - это вызов функции из mql
"Доктор, меня все игнорируют!..." (с)
Постов 10 назад (https://www.mql5.com/ru/forum/151351/page20#966535) я писал про проблемы с передачей параметров UNICODE-овских строк в импортированных функциях. Например,
int res= kernel32::GetPrivateProfileStringW(SectionName, KeyName, Default, Buffer, nSize, FileName);
Эта строчка работает только в режиме отладки. В обычном режиме исполнения не работает. В предыдущем билде все работает.
Это претензия ко мне?)) У меня пол советника не пашет из за этого грёбанного юникода. Мне он нужен во всех режимах и в тесте и в работе.
aleksandr25, Вы бы с кодировкой разобрались. Параметр юникодовый, а выводите, как ANSI. Конечно, работать не будет.
Ещё научитесь код вставлять в сообщения (SRC).
О кодировках: http://local.joelonsoftware.com/wiki/%D0%90%D0%B1%D1%81%D0%BE%D0%BB%D1%8E%D1%82%D0%BD%D1%8B%D0%B9_%D0%9C%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC,_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%9A%D0%B0%D0%B6%D0%B4%D1%8B%D0%B9_%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA_%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%9E%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%9E%D0%B1%D1%8F%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE_%D0%94%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD_%D0%97%D0%BD%D0%B0%D1%82%D1%8C_%D0%BE_Unicode_%D0%B8_%D0%9D%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%85_%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2
Об ofstream: http://en.cppreference.com/w/cpp/io/basic_ofstream
Юникод в ANSI: https://docs.mql4.com/ru/convert/stringtochararray
Исправили константы и возвращаемые коды причины деинициализации.
Спасибо.
Отдельное спасибо за то, что это не стало истиной:
Поясните, что не так?
Встроенный макрос REASON_INITFAILED имеет значение 9
чего я опасался.
Единственное, что мне не удалось, - это получить REASON_CLOSE. При закрытии терминала получаю REASON_CHARTCLOSE.
aleksandr25, Вы бы с кодировкой разобрались. Параметр юникодовый, а выводите, как ANSI. Конечно, работать не будет.
Ещё научитесь код вставлять в сообщения (SRC).
Если по нормальному делать а не через жо.., то хотите ввести ненужный никому юникод, вводите, но как новый тип, чтобы старые проги продолжали нормально работать.
О кодировках: http://local.joelonsoftware.com/wiki/%D0%90%D0%B1%D1%81%D0%BE%D0%BB%D1%8E%D1%82%D0%BD%D1%8B%D0%B9_%D0%9C%D0%B8%D0%BD%D0%B8%D0%BC%D1%83%D0%BC,_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B9_%D0%9A%D0%B0%D0%B6%D0%B4%D1%8B%D0%B9_%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA_%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%9E%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%9E%D0%B1%D1%8F%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE_%D0%94%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD_%D0%97%D0%BD%D0%B0%D1%82%D1%8C_%D0%BE_Unicode_%D0%B8_%D0%9D%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%85_%D0%A1%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2
Об ofstream: http://en.cppreference.com/w/cpp/io/basic_ofstream
Юникод в ANSI: https://docs.mql4.com/ru/convert/stringtochararray
Друг, спасибо за ссыль, но там столько букаф, что мне не хочется это читать)). Я програмер-любитель, мне изучать это всё означает забить на трейдинг).
aleksandr25, Вы бы с кодировкой разобрались. Параметр юникодовый, а выводите, как ANSI. Конечно, работать не будет.
Ещё научитесь код вставлять в сообщения (SRC).
Какой тип приходит в функцию при данной схеме? char[] или strihg? Как эту строку использовать?
Если по нормальному делать а не через жо.., то хотите ввести ненужный никому юникод, вводите, но как новый тип, чтобы старые проги продолжали нормально работать.
Друг, спасибо за ссыль, но там столько букаф, что мне не хочется это читать)). Я програмер-любитель, мне изучать это всё означает забить на трейдинг).
Какой тип приходит в функцию при данной схеме? char[] или strihg? Как эту строку использовать?