Belju100:
Нужно переделывать DLL, т. к. в старом формате MQL4 строки были ANSI, а в новом - Unicode. Поэтому все строковые параметры, передаваемые в DLL, в первом варианте будут обработаны верно, а во втором - неверно.
помогите понять в чем дело, при компиляции в старых билдах, кнопка есть, в новых - ее нет, хотя при компиляции и при запуске сообщений об ошибках нет, вот строчки кода:
Пробовал так, вместо
#import "user32.dll" int GetParent(int a0); int PostMessageA(int a0, int a1, int a2, int a3); int RegisterWindowMessageA(string a0);
делал так
#import "user32.dll" int GetParent(int a0); int PostMessageW(int a0, int a1, int a2, int a3); int RegisterWindowMessageW(string a0);
был нашел на англоязычном сайте инфу что начиная с 600 билда PostMessageA и RegisterWindowMessageA не работают, следует заменить на такие же с W, но тоже безрезультатно, причем с W не работает и до 600
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
помогите понять в чем дело, при компиляции в старых билдах, кнопка есть, в новых - ее нет, хотя при компиляции и при запуске сообщений об ошибках нет, вот строчки кода:
#import "mt4gui.dll" int tbPutObject(int a0, string a1, int a2, int a3, int a4, int a5, string a6); int tbRemove(int a0, int a1); int tbSetBgColor(int a0, int a1, int a2); int tbSetTextColor(int a0, int a1, int a2); int tbSetText(int a0, int a1, string a2, int a3, string a4); #import int aa = 0; int bb; int init() { aa = WindowHandle(Symbol(), Period()); bb = tbPutObject(aa, "button", 150.0 , -140.0 , 125.0 , 30.0 ,"wwwwwww"); tbSetText(aa, bb, "Buy " , 18.0 , "Arial"); tbSetBgColor(aa, bb, Red); return(0); } int deinit() { tbRemove(aa, bb); return (0); } int start() { return(0); }