Re[23]: доступ к классам и структурам в Reference из макроса
От: _Claus_  
Дата: 18.12.11 14:50
Оценка:
VD>Еще раз спрашиваю — как ты подпадаешь в отладочный режим?

в окне Обозреватель
1) сделать DBlib запускаемым
2) щелкнуть на DBLib правой клавишей, выбрать Отладка-> Запустить новый экземпляр

мне важно знать, что с моим кодом не так, потому что когда ты начинаешь править или вносить изменения
ты пользуешься знаниями, которые я пытаюсь получить.

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

второй вариант — хз его знает, устроит тоже, но в этом случае мне будет проблематично двигаться дальше.

спасибо за терпение!
Re[24]: доступ к классам и структурам в Reference из макроса
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.12.11 17:49
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>в окне Обозреватель

_C_>1) сделать DBlib запускаемым
_C_>2) щелкнуть на DBLib правой клавишей, выбрать Отладка-> Запустить новый экземпляр

Новый экзепляр чего? Какой ехе-ник. Что в параметрах командной строки?
Может у тебя просто при отладке что-то старое запускается.

Попробуй просто поставить assert2(false).

_C_> мне важно знать, что с моим кодом не так, потому что когда ты начинаешь править или вносить изменения

_C_> ты пользуешься знаниями, которые я пытаюсь получить.

Я тебе уже раза три описал то что я сделал. Давай еще раз:
1. Я обновил ссылки на сборки немерла, которые у тебя, почему-то, были заданы жестко.
2. Добавил к полям структуры public.
3. Добавил в твой код цикл в котором информацию о полях выводил с помощью Message.Hint() (чтобы отладчик не запускать).

Другими словами — никаких существенных изменений.

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


Я бы тебе посоветовал сделать все с нуля без выкрутасов и оптимизаций:
1. Создай пустой проект и новый макрос. Причем делай это визардами, а не в рукопашную.
2. Не используй этот долбенный индент-синтакс, чтобы иметь возможность пользоваться интеллисенсом.
3. Вместо использования отладчика используй вывод информации с помощью Message.Hint(). Тем самым исключишь проблемы которые могут быть вызваны отладкой.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[24]: доступ к классам и структурам в Reference из макроса
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.12.11 18:17
Оценка: +1 :)
Здравствуйте, _Claus_, Вы писали:

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


Залез в проекты чтобы посмотреть почему ссылки кривые на немерловые сбокри... И что же я там увидил?
    <StartProgram>$(ProgramFiles)\Nemerle\net-4.0\NCC.exe</StartProgram>
    <WorkingDirectory>C:\MyProjects\MacroTest40\MacroTest</WorkingDirectory>
    <CmdArgs>Main.n -m:C:\MyProjects\DBLib\DBLib\bin\Debug\DBLib.dll</CmdArgs>


У меня нет слов.

Тым нам тут раз 10 сказал, что сборку подключал как Reference, но что мы видим?

"-m:...\DBLib.dll"

-m, -macros:STRING Load macros from given library (without loading types from library into the scope)

(с) ncc -h

Любому ежику понятно, что при этом подключении сборки типов из нее не увидишь.

Вообще, не ясно зачем было использовать типы из макро-сборки.

В любом, случае, в консоли должно было быть видно сообщение об ошибке (что тип не найден).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[25]: доступ к классам и структурам в Reference из макроса
От: _Claus_  
Дата: 18.12.11 22:02
Оценка:
VD>Тым нам тут раз 10 сказал, что сборку подключал как Reference, но что мы видим?

скопировал командную как было из учебного проекта, видел что в проекте MainTest у меня DBLib стоит в Reference, а не в Macro Reference,
и с чистой совестью утверждал, что все ок.

VD>Любому ежику понятно, что при этом подключении сборки типов из нее не увидишь.

теперь понятно и мне!

VD>Вообще, не ясно зачем было использовать типы из макро-сборки.

чтобы не создавать отдельный проект для столь незначительного момента.

Спасибо большое!!
Re[26]: доступ к классам и структурам в Reference из макроса
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.12.11 22:15
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>скопировал командную как было из учебного проекта, видел что в проекте MainTest у меня DBLib стоит в Reference, а не в Macro Reference,

_C_>и с чистой совестью утверждал, что все ок.

Мы программисты. Мы должны верить только фактам. А все предположения нужно проверять. Иначе через некоторое время придется поверить в нечистую силу и тому подобное.

Если видно в отладчике System.Object — это неоспоримый факт. А раз так, то нужно искать причины этого факта. Я тебе сразу сказал, что причины эти кроются в типе (его описании или подключении). Ты мне не верил и упорно добивался каких-то потусторонних знаний.

VD>>Вообще, не ясно зачем было использовать типы из макро-сборки.

_C_>чтобы не создавать отдельный проект для столь незначительного момента.

Говоря по русски — от лени. Я сам ленив до невозможности, но искать часами (а в твоем случае днями) ошибки — это же в сто раз более лениво. Не находишь?
По сему нужно строить работу так, чтобы подобного рода ошибки не мешали движению вперед.

В твоем случае первое в чем нужно было убедиться — видно ли тип в конечном проекте.

Кроме того в твоих проектах бардак. Там туча ворнингов которые скрывают реальные ошибки.

Двигаться надо короткими перебежками. Сделал изменение, проверь его корректность. И только потом двигайся дальше. Иначе быстро придешь к состоянию когда происходящее вокруг будет казаться мистикой.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[25]: доступ к классам и структурам в Reference из макроса
От: _Claus_  
Дата: 18.12.11 22:51
Оценка:
VD>Вообще, не ясно зачем было использовать типы из макро-сборки.

>>чтобы не создавать отдельный проект для столь незначительного момента.


не верно написал, мне нужны типы в коде из макросборки. В частности, сохраняемые
объекты у меня наследуют интерфейс IPersist, который описан в макросборке и для него там генерится код реализации.
также там я держу тип базы и всякое по мелочи.

попробовал убрать -m: и вообще перестало работать.
Re[27]: доступ к классам и структурам в Reference из макроса
От: _Claus_  
Дата: 18.12.11 22:57
Оценка:
VD>Кроме того в твоих проектах бардак. Там туча ворнингов которые скрывают реальные ошибки.
это набросок, а не релизный продукт. во вторых я начинающий в N.

VD>Двигаться надо короткими перебежками. Сделал изменение, проверь его корректность.

только так и делаю. вот нактнулся на это, и разбираюсь до победного(пока не пойму)
Re[26]: доступ к классам и структурам в Reference из макроса
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.12.11 23:51
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>не верно написал, мне нужны типы в коде из макросборки. В частности, сохраняемые

_C_>объекты у меня наследуют интерфейс IPersist, который описан в макросборке и для него там генерится код реализации.
_C_>также там я держу тип базы и всякое по мелочи.

Дык и вынеси нужные типы в отдельную сборку (библиотеку). Зачем в ратайме нужна сборка с проектами?

_C_>попробовал убрать -m: и вообще перестало работать.


Еще бы.

Попробуй m на r заменить.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[28]: доступ к классам и структурам в Reference из макроса
От: VladD2 Российская Империя www.nemerle.org
Дата: 19.12.11 14:17
Оценка:
Здравствуйте, _Claus_, Вы писали:

_C_>это набросок, а не релизный продукт. во вторых я начинающий в N.


Так не бывает. Если ест грязь, то качества нет. А раз так, то ты вечно будешь ловить баги.

В набросках, ты можешь забить дизайн, архитектуру и другие красивые слова. Но качество кода страдать не должно.

Я тебе ведь говорил, что если ты получил object — это значит, что тип не был связан. А об этом выводится сообщение. Если бы у тебя не было тонны ворнингов, то ты бы увидел их в консоли, которая открывается у тебя при отладке. Но ты ничего не заметил, как это было дцатое сообщение в консоли.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.