Originally Posted By: jhgjrht
Ну, отчаиваться не надо.
Ранее Вы писали, что размещаете DLL с индикаторами в папку "D:\Program Files\TSLab\Handlers", убедитесь, что TSLab запускаете из "D:\Program Files\TSLab".
Проверьте буквы названия "Handlers", может "H" кириллицей набрано, например. Проще эту папку заново создать.
Тот индикатор, что я выложил должен появиться на закладке "MyIndicators" в окне редактора TSLab. Проверьте.
Логи программы посмотрите.
Ну если ничего не помогает, тогда "в морг". smile

То что буквы 'H' или 'a' в названии папки могли быть набраны кирилицей, это Вы безусловно правы, но это было самое первое, что я проверял (просто не перечислял это дабы не загромождать важную тему). К тому же на этой неделе я уже несколько раз полностью сносил и TSLab и SharpDevelop и Framework, пробывал их переустанавливать предыдущими версиями, не помогало, снова устанавливал новые версии. Когда прописывал установычные пути, за кодировкой следил строго, т.к. такую возможную ошибку с кодировками всегда держу в голове.

Тут ещё один интересный момент вскрылся с той DLL, ссылку на которую Вы мне дали - в моей ОС Ваша DLL также оказалась не работоспособной, по сути пустой, т.к. моя вспомогательная прога Dependency Walker также показала (как и терминал TSLab), что у Вашей DLL имеется таже самая проблема, что и у моей, т.е. отсутствуют те две вспомогательные DLL. И описание ошибки было слово в слово таким же. Я начинаю подозревать, что как раз именно в этих DLL вся проблема и кроется. Ведь абравиатура DLL (Dynamic Link Library) в переводе на русский язык дословно переводится как Динамически Компануемая Библиотека (библиотека функций, классов, объектов), хотя не сомневаюсь, что Вы это и без меня отлично знаете. Соответственно динамическая компановка DLL в ОС может происходить с другими DLL, и может образовываться достаточно сложное и ветвистое дерево подключаемых DLL. При этом, если хотя бы одна из вспомогательных DLL входящая в требуемое дерево подключаемых dll будет отсутствовать, или будет находится не в нужной директории, или просто будет не той версии, которой должна быть, то наша Главная и Конечная DLL окажется фактически пустой и абсолютно не работоспособной в конкретной ОС на конкретной машине, где это дерево окажется повреждённым. Тут всё зависит от сложности программных технологий, применяемых разработчиками ПО. Здесь в нашем случае, судя по тому, что мне показывает моя вспомогательная прога - Dependency Walker как раз и образуются такие сложные DLL со сложными и ветвистыми деревьями из других вспомогательных dll. Кстати, то что Вы пишете про необходимость строгого соответствия установленной версии frame work (что бы она была строго версии 3.5), как раз и означает требование формирования правильного и корректного дерева вспомогательных dll подключаемых к нашей Главной DLL. Когда я учился в МГУ приходилось писать достаточно сложные многомодульные проги, часть модулей писал на С++ (математику), а визуализацию в среде BlackBox на языке Компонентный паскаль, при этом механизм dll использовал как промежуточное звено между разными языками программирования. Вспомогательную программу Dependency walker применял для отслеживания изменения имён в механизме DLL (при экспорте/импорте нужных мне функций (модулей) из одного языка в другой язык происходит небольшое изменение имён). В одном из окошек проги Dependency walker приводится список всех функций, которые импортированы в рассматриваемую dll, и вот Ваша DLL - индикатор, как и мои dll, созданные в среде ШарпДевелоп на моей машине оказываются абсолютно пустыми, т.е. без списка импортируемых функций и к тому же с двумя ошибками. Я написал это не для того, что бы "блеснуть", НЕТ, не в коем случае, а просто что бы объяснить, что не первый год в программировании, что "в теме" и что простые варианты с кирилицей с самого начала исключал. К тому же, наверняка, у кого то также может возникнуть полностью аналогичная проблема и этот материал (наша с Вами переписка) может оказаться кому то полезным. Хотя про кирилицу это Вы грамотно написали, т.к. такое вообще говоря может произойти, конечно, у кого угодно. Так же скорее всего правильно Вы написали про несоответствие версии фрэймворка, т.е. несоответствия дерева вспомогательных dll. Только что мне делать, если это я тоже опробывал - переустанавливал всё ПО на предыдущие версии и чётко контролировал на вкладке Compiling в свойствах проекта значение параметра Target Framework (установлено в ".NET Fremework 3.5"). Т.е. соблюдал всё, что Вы мне и писали, но пока ни чего не помогло! frown Думаю, что надо каким то образом создать на моей машине дерево вспомогательных dll полностью аналогичное Вашему дереву, т.е. дереву установленному на Ваших машинах.


Отредактировано Physic (Thu Oct 13 2011 08:19 PM)