| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > C++\CLI + IKVM for nanoTime() |
| Автор: cupper 2.8.2011, 17:09 | ||||
| На C++\cli реализуется обертка для С++ либы, что бы ее потом использовать в JAVA коде. Встала необходимость засекать время выполнения, определенной работы. Для этого в либе, в некий момент заполняется в структуре поле NanoTime (long), далее эта структура отдается в JAVA среду где этот nanoTime сравнивается с ихним NanoTime и тем самым вычисляется некая задержка. Гавно в том что в JAVA функция NanoTime может иметь разные точки отсчета, на разных платформах, и оно используется как раз только для замеров времени выполнение, и не как не сопоставляется с реальным временем. Поэтому использовать что то из C# для получения NanoTime неканает. Остается только заюзать IKVM версию функции nanotime и надеяться что оно будет иметь одинаковую точку отсчета что и JAVA-вская. Для того что бы в проекте заюзать эту функцию, надо подключить IKVM.Runtime.dll. Для того что бы убедится что функция реально работает, я создал пустое С++\CLI приложение добавил референс на эту dll, написал одну строчку кода System::Int64 nanoTime = java::lang::System::nanoTime(); и запустил. Получи экцепшен
самое странное что до подключения IKVM.Runtime.dll и получал точно такой же эксцепшен. Кто юзал IKVM ? Может я вообще что то в корне не то делаю ? Я понятие не умею как мне разрулить сей касяк :( Добавлено @ 17:13 я вас бесчестно обманул. приведенныэ экспецшен появляется если IKVM.Runtime.dll нет в референс, если его добавить я получаю вот такой эксцепшен
IKVM версии 42.0.6. Еще одно упущение, проект в итоге должен билдиться под 3.5 fraemwork. |