очередной Critical error на 203 билде - страница 3

 
AlexeyKoshevoy:
Rosh:

Вы еще на китайской версии сайта не разместили свой пост. Быстрее исправляйтесь, иначе китайские товарищи не увидят Вашего сообщения.

Это вы к чему, я что-то юмора не понял. Или это у вас так поддержка прогрммного обеспечения выполняется - помочь не можем, так хоть поязвим?

Это я к тому, что кто-то от Вашего имени везде старается успеть:

AlexeyKoshevoy:

Hi guys

I have too much crush logs with this new version.

Do something!!!


Я понимаю, исключительно в целях помощи.
 

Да нет, это я лично написал, сначала я не нашел на русском языке обсуждения нового билда, только эту ветку, поэтому и написал на английском. У меня нет желания ни плодить посты, ни праздно сидеть на форуме, однако я уже второй день не могу нормально работать. Хорошо что программисты признали что проблема есть и занимаются ее решением. Если считаете что мои посты как-то вредят имиджу вашей компании или кого-то окорбляют, то просто удалите их. Но, мне кажется, что должно быть место, где можно свободно обсуждать проблемы программного обеспечения, если на форуме это не принято.

 
Да нет, как раз здесь и принято. Просто фразы типа "I have too much crush logs with this new version" несут мало информации и пользы от них никакой. Поэтому мне показалось, что помощь в нахождении бага не предлагалась.
 

Согласен, но это правда, и у разработчика должен возникнуть вопрос. А его не было, был только совет попробовать написать нечто подобное на китайском языке. Вы конечно извините, что я так эмоционально, но с таким ненавящивым сервисом в плане устранения багов я уже знаком около года. Если писать прямо на ящик, то ответы приходят в лучшем случае один раз на 5 писем. После пятого перестал писать на почту. На форуме тоже описывал явный маленький глючек, который до сих пор остался без внимания. Мелкий такой, безобидный, чисто из принципа описал - нет реакции. Откуда ж тогда возмется желание тратить силы и время на то что не читается и не исправляется. У вас прекрасное программное обеспечение, но на мой взгляд поддержка реализована не на том уровне, на котором она должна быть. Начиная от стиля общения и заканчивая скоростью и качеством реакции. Поинтересуйтесь, например, как работают супорт центры в Хьюлит Пакард или в Дженерал Моторс. Но там правда всем движит конкуренция, которая вам пока не грозит, к сожалению.

А основная проблема заключается в том, что на базе вашего программного обеспечения организованно много компаний, которые оказывают услуги по разработке экспертов и индикаторов. Так вот когда сотня клиентов начинает описывать непонятные проблемы, мы просто в шоке, теряем время, которое есть деньги, а потом оказывается что проблема в самом начале, в терминале. Как говориться - "Вы в ответе за тех, кого приручили".

Хотя до этой версии кретических проблем не было и надеюсь это небольшое недоразумение скоро исчерпается и не повторится. На все остальное можно и позакрывать глаза до лучших времен.








 

Если кого-то будет интересовать такой креш, как сбой при загрузке своих библиотек .NET помимо основной на C++, вобщем тыркался тыркался и до тыркался, обошел, путем выкладывания всех своих DLL в корневую папку программы. Только там все запустилось как надо и отлично работает. Условия для работы библиотеки на .NET таковы, либо она должна быть в кеше системы зарегистирована, либо она должна быть в папке программы, но она не может быть здесь: \experts\libraries или например здесь: \WINDOWS\System32 или где либо еще, это не относится к любым другим способам подгрузки сборок, кроме основного, такого как разработка проекта и объединение .NET С# с MC++. В итоге все либы не на MQL держу теперь в корне терминала.

Естественно библиотека с экспортированными функциями может находится \experts\libraries, но ее так же можно класть и в корень программы, поэтому они все теперь в корне, чтобы не мешаться. Модуль: D:\MetaTraderDemo\Controlib.dll не будет выдавать исключений если найдет загружаемую сборку на .NET здесь D:\MetaTraderDemo\Controlom.dll даже если сам будет находится здесь: D:\MetaTraderDemo\experts\libraries\Controlib.dll все модули легко отследить, чем я и занимался. К сожалению сам модуль нельзя предварительно загрузить в DllMain с помощью LoadLibrary, да модуль будет загружен, но использовать его будет нельзя, так прежде проверяется его существование именно рядом с главным модулем программы или в .NET кеше системы. Почему же тогда грузится Controlib.dll, спросите вы, а потому что он действует по стандартным правилам DLL экспорта/импорта, но не по правилам .NET экспорта/импорта, которые существенно различаются, динамическая библиотека загрузится от туда где она найдется, при этом не столь важно где она найдется, в то время как для .NET это принципиально важно, лишний раз перепроверит, хотя принципы загрузки одни и те же, по крайней мере на низком уровне, дальше они так же различаются, так как машинный код формируется при подгрузке библиотеки, а в условиях таких жестких проверок правил, он даже не формируется, хотя и догружает необходимый рантайм из mscoree.dll и ее зависимостей, но лишь на уровне DLL. Для использования системного кэша недостаточно положить либу в папку C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ это лишь дислокация рантайм компонентов, но не гарантия регистрации, для этого уже есть MSDN кому нужно знать об этом, а для этого случая нам не нужен кеш, это необходимо только для компонентов которые используются более чем в одной программе, я же лишь описываю условия в которые необходимо входить для того чтобы все же это делать по правилам.

Логически, на самом деле все просто, я и раньше грузил и использовал . NET в разные программы, которые о нем даже не знают, но я никогда не использовал другие папки, кроме корня самой программы или глобального .NET кеша системы. Вот такое вот содержание краха стандартно если возникает подобное исключение об отсутствии компонента .NET. Избавится не удается если не устранить саму причину, еще не проверял всех случаев, но это исключение мне приходилось наблюдать с пол сотни а может больше раз пока не устранил причину, по незнанию это растянулось на целый день.

P.S.: Возможно я в чем-то заблуждаюсь, но мои иследования проблеммы привели меня именно к этому.

There has been a critical error
Time : 2007.04.04 07:09
Program : Client Terminal
Version : 4.00 (build: 203, 28 Mar 2007)
Owner : Alpari Ltd (MetaTrader - Alpari)
OS : Windows 2003 Server 5. 2 Service Pack 1 (Build 3790)
Processors : 1, type 586, level 6
Memory : 2096592/1289356 kb
Exception : E0434F4D
Address : 7C815E02
Access Type : NA
Access Addr : 00000000

Registers : EAX=0299E904 CS=79ea001b EIP=7C815E02 EFLGS=00000202
: EBX=00153D20 SS=0023 ESP=0299E900 EBP=0299E954
: ECX=00000000 DS=220023 ESI=0299E990 FS=22003b
: EDX=00000025 ES=0023 EDI=E0434F4D GS=0000

Stack Trace : 79F97065 7A05B942 7A05B9EB 7A05B9F6
: 00000018 00000018 00000018 00000018
: 00000018 00000018 00000018 00000018
: 00000018 00000018 00000018 00000018
Modules :
1 : 00400000 007AF000 D:\MetaTraderDemo\terminal. exe
2 : 01240000 00009000 C:\WINDOWS\system32\Normaliz. dll
3 : 013E0000 0000F000 D:\MetaTraderDemo\Controlib. dll
4 : 01580000 00018000 C:\WINDOWS\system32\odbcint. dll
5 : 025C0000 002CD000 C:\WINDOWS\system32\xpsp2res. dll
6 : 037B0000 00102000 C:\WINDOWS\WinSxS\x86_Microsoft. VC80. DebugCRT_1fc8b3b9a1e18e3b_8. 0.50727.42_x-ww_F75EB16C\msvcm80d.dll
7 : 10000000 00010000 C:\WINDOWS\system32\ctagent. dll
8 : 10200000 00120000 C:\WINDOWS\WinSxS\x86_Microsoft. VC80. DebugCRT_1fc8b3b9a1e18e3b_8. 0.50727.42_x-ww_F75EB16C\MSVCR80D.dll
9 : 20000000 00012000 C:\Program Files\ABBYY Lingvo 11 Six Languages\LvHook. dll
10 : 20B00000 0004B000 C:\WINDOWS\system32\imon. dll
11 : 20C00000 0000C000 C:\Program Files\Eset\pr_imon. dll
12 : 4C010000 0003D000 C:\WINDOWS\system32\ODBC32. dll
13 : 4DCB0000 0002E000 C:\WINDOWS\system32\msctfime. ime
14 : 5E380000 00089000 C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\diasymreader. dll
15 : 68000000 0002F000 C:\WINDOWS\system32\rsaenh. dll
16 : 6E850000 00045000 C:\WINDOWS\system32\iertutil. dll
17 : 6EDB0000 00059000 C:\WINDOWS\system32\hnetcfg. dll
18 : 71720000 000CF000 C:\WINDOWS\system32\WININET. dll
19 : 71970000 00008000 C:\WINDOWS\System32\wshtcpip. dll
20 : 719B0000 00042000 C:\WINDOWS\system32\mswsock. dll
21 : 71A00000 00036000 C:\WINDOWS\system32\UxTheme. dll
22 : 71A40000 0000A000 C:\WINDOWS\system32\WSOCK32. dll
23 : 71A80000 00008000 C:\WINDOWS\system32\WS2HELP. dll
24 : 71A90000 00017000 C:\WINDOWS\system32\WS2_32. dll
25 : 725B0000 00051000 C:\WINDOWS\system32\MSCTF. dll
26 : 72BE0000 00008000 C:\WINDOWS\system32\msacm32. drv
27 : 72BF0000 00009000 C:\WINDOWS\system32\wdmaud. drv
28 : 754F0000 00121000 C:\WINDOWS\system32\MFC42. DLL
29 : 75D80000 00027000 C:\WINDOWS\system32\apphelp. dll
30 : 760B0000 00012000 C:\WINDOWS\system32\MSASN1. dll
31 : 760D0000 00094000 C:\WINDOWS\system32\CRYPT32. dll
32 : 761A0000 00005000 C:\WINDOWS\system32\MSIMG32. dll
33 : 761B0000 0001D000 C:\WINDOWS\system32\IMM32. DLL
34 : 761D0000 0004A000 C:\WINDOWS\system32\comdlg32. dll
35 : 769C0000 0002E000 C:\WINDOWS\system32\WINMM. dll
36 : 76A90000 0000B000 C:\WINDOWS\system32\PSAPI. DLL
37 : 76AD0000 0002B000 C:\WINDOWS\system32\WINTRUST. dll
38 : 76B30000 00029000 C:\WINDOWS\system32\imagehlp. dll
39 : 76DF0000 0002F000 C:\WINDOWS\system32\DNSAPI. dll
40 : 76E30000 0002F000 C:\WINDOWS\system32\WLDAP32. dll
41 : 76E90000 00007000 C:\WINDOWS\System32\winrnr. dll
42 : 76EA0000 00008000 C:\WINDOWS\system32\rasadhlp. dll
43 : 77360000 00103000 C:\WINDOWS\WinSxS\X86_Microsoft. Windows. Common-Controls_6595b64144ccf1df_6. 0.3790.2778_x-ww_A8F04F11\COMCTL32.dll
44 : 77510000 00134000 C:\WINDOWS\system32\ole32. dll
45 : 77B50000 00007000 C:\WINDOWS\system32\midimap. dll
46 : 77B60000 00014000 C:\WINDOWS\system32\MSACM32. dll
47 : 77B90000 0005A000 C:\WINDOWS\system32\msvcrt. dll
48 : 77BF0000 00048000 C:\WINDOWS\system32\GDI32. dll
49 : 77C40000 0009F000 C:\WINDOWS\system32\RPCRT4. dll
50 : 77CF0000 0008C000 C:\WINDOWS\system32\OLEAUT32. dll
51 : 77D90000 000AF000 C:\WINDOWS\system32\ADVAPI32. dll
52 : 77EE0000 00052000 C:\WINDOWS\system32\SHLWAPI. dll
53 : 77F40000 00092000 C:\WINDOWS\system32\USER32. DLL
54 : 78130000 0009B000 C:\WINDOWS\WinSxS\x86_Microsoft. VC80. CRT_1fc8b3b9a1e18e3b_8. 0.50727.762_x-ww_6B128700\MSVCR80.dll
55 : 79000000 00045000 C:\WINDOWS\system32\mscoree. dll
56 : 79060000 00053000 C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorjit. dll
57 : 790C0000 00AE6000 C:\WINDOWS\assembly\NativeImages_v2. 0.50727_32\mscorlib\b1295a89253e8540bf93dc64829c9a20\mscorlib. ni.dll
58 : 79E70000 00561000 C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorwks. dll
59 : 7A440000 007BE000 C:\WINDOWS\assembly\NativeImages_v2. 0.50727_32\System\4af68ea60dbead498622e46456f908e9\System. ni.dll
60 : 7C800000 00103000 C:\WINDOWS\system32\kernel32. dll
61 : 7C910000 000C1000 C:\WINDOWS\system32\ntdll. dll
62 : 7C9E0000 00808000 C:\WINDOWS\system32\SHELL32. dll

Call stack :
7C815DC6:003C [7C815E02] RaiseException [C:\WINDOWS\system32\kernel32. dll]
79F938BC:37A9 [79F97065] GetCLRFunction [C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorwks.dll]
7A05116B:A7D7 [7A05B942] ClearDownloadCache [C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorwks.dll]
7A05116B:A880 [7A05B9EB] ClearDownloadCache [C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorwks.dll]
7A05116B:A88B [7A05B9F6] ClearDownloadCache [C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorwks.dll]


 
xnsnet:

Если кого-то будет интересовать такой креш, как сбой при загрузке своих библиотек .NET помимо основной на C++, вобщем тыркался тыркался и до тыркался, обошел, путем выкладывания всех своих DLL в корневую папку программы. Только там все запустилось как надо и отлично работает. Условия для работы библиотеки на .NET таковы, либо она должна быть в кеше системы зарегистирована, либо она должна быть в папке программы, но она не может быть здесь: \experts\libraries или например здесь: \WINDOWS\System32 или где либо еще, это не относится к любым другим способам подгрузки сборок, кроме основного, такого как разработка проекта и объединение .NET С# с MC++. В итоге все либы не на MQL держу теперь в корне терминала.
Call stack :
7C815DC6:003C [7C815E02] RaiseException [C:\WINDOWS\system32\kernel32. dll]
79F938BC:37A9 [79F97065] GetCLRFunction [C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorwks.dll]
7A05116B:A7D7 [7A05B942] ClearDownloadCache [C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorwks.dll]
7A05116B:A880 [7A05B9EB] ClearDownloadCache [C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorwks.dll]
7A05116B:A88B [7A05B9F6] ClearDownloadCache [C:\WINDOWS\Microsoft. NET\Framework\v2. 0.50727\mscorwks.dll]


Если падение вне нашего терминала в какой-либо внешней DLL (как в Вашем случае), то эти падения никаким образом не относятся к МетаТрейдеру и мы не отвечаем за них. Мы не можем контролировать чужие DLL и вся полнота ответственности за использование DLL ложится на самого программиста.
 
AlexeyKoshevoy:

Согласен, но это правда, и у разработчика должен возникнуть вопрос. А его не было, был только совет попробовать написать нечто подобное на китайском языке.

Вопрос четко прозвучал:

Нужна конкретика. Опубликуйте, пожалуйста, свой код. Проверим, что не так компилируется.

К сожалению, Вы тратите чужое время своими бездоказательными заявлениями. Опубликуйте креш логи, код эксперта и детальное описание, чтобы можно было воспроизвести проблему.
 
Renat:
Если падение вне нашего терминала в какой-либо внешней DLL (как в Вашем случае), то эти падения никаким образом не относятся к МетаТрейдеру и мы не отвечаем за них. Мы не можем контролировать чужие DLL и вся полнота ответственности за использование DLL ложится на самого программиста.

Абсолютно согласен:) Поэтому данное описание проблеммы, лишь для тех кто возможно будет с этим иметь дело! Даже не расчитываю на поддержку в этом вопросе, так как не думаю что технология .NET будет поддерживаться в MetaTrader. Однако это не говорит о том что ее нельзя применить к решению многих вопросов удобства в разработке и расширении возможностей самого терминала за счет многих встроенных возможностей. Хотя я думаю что, что если бы такой шаг был бы предпринят, то вам не приходилось бы передавать ответственность каждый раз когда об этом встает вопрос, потому как можно четко отделить ошибки MetaTrader от ошибок компонентов в управляемой среде, а для этого нужны специалисты, на которых никому не захочется разорятся:) Это лишь мое мнение, да и не относительно кого-то или чего-то конкретно, а лишь общей ситуации, не более того:) Было бы удобно не видеть этого окна, когда исключение его не касается, но я не говорю о том что это ваша обязанность или обязанность разработчиков, я всего лишь говорю, что было бы удобно:)
 
to stringo  Hет. Еже совсем другой креш. Я просто запустил терминал и хотел перелогинится.Тот креш что в начале ветки я воспроизвести не смог.
 
stringo:
DMT:

Не хватает индикатора 0_PCCI - не могу воспроизвести проблему.

Прошу прощение за невнимательность. Вот индикатор.

Не помогло. Не могу воспроизвести. Можете расписать по шагам Ваши действия, которые приводят к крешу?

К сожалению проблема, как неожиданно появилась, так же неожиданно, по прошевствии двух дней, и исчезла. В чем дело -- не могу разобраться, те же данные, те же индикаторы.
А действий были самые простые. Запускал тестирование этого эксперта. На любом тикере, любом временном интервале, любой модели терминал выдавал креш еррор при каждом запуске. Хотя, до этого нормально тестировался и на 202 и на 203 около 2-х недель. .. 
Причина обращения: