Проблема состоит в следующем, нужно из native-кода вызывать методы .NET сборки передавая им параметры и соответсвенно получая результат работы. Но вот не задача никак не соображу как это сделать, т.к. интерфейс Unmanaged API просто ужасно задокументирован .
Пытаюсь сейчас делать это как-то, но пока не получается передать больше одного параметра:
Может уважаемы all уже встречаслся с подобной проблемой и скажет куда смотреть или может есть ссылки по данной теме, вообщем любой инфе которая поможет продвинуться в этом не легком деле буду крайне признателен.
Re: Передача параметров .NET методу через UnmanagedAPI из Na
Здравствуйте, vim, Вы писали:
vim>Проблема состоит в следующем, нужно из native-кода вызывать методы .NET сборки передавая им параметры и соответсвенно получая результат работы. Но вот не задача никак не соображу как это сделать, т.к. интерфейс Unmanaged API просто ужасно задокументирован .
<поскипано>
вам же вроде ответили здесь
Тут другая ситуация, в том случае все решено и тема закрыта. В данном случае не идет речь о создании домена и просто выполнения кода в нем, тут стоит задача вызвать конкретный managed метод из native среды и передача ему аргументов, а после этого еще и от следить возвращаемые им параметры.
Re[3]: Передача параметров .NET методу через UnmanagedAPI из
Здравствуйте, vim, Вы писали:
vim>Тут другая ситуация, в том случае все решено и тема закрыта. В данном случае не идет речь о создании домена и просто выполнения кода в нем, тут стоит задача вызвать конкретный managed метод из native среды и передача ему аргументов, а после этого еще и от следить возвращаемые им параметры.
хм, но там же параметры передаются
это разве не то, что вам надо?
Не переходите улицу на тот свет..
Re[4]: Передача параметров .NET методу через UnmanagedAPI из
В той ситуации на которую вы привели ссылку хост создается через CorRuntimeBindEx() и там была проблема передачи параметров, она уже решена спасибо всем откликнувшимся.
В данной ситуации осуществляется попытка вызова managed метода из native среды и даже большая проблема не передачи параметров, а получения возвращаемого значения.Вот вопрос и заключается в том, что может кто делал что то подобное и может ткнуть носом, куда копать, а то что то затык какой то блин.
Re[5]: Передача параметров .NET методу через UnmanagedAPI из
Здравствуйте, vim, Вы писали:
vim>В той ситуации на которую вы привели ссылку хост создается через CorRuntimeBindEx() и там была проблема передачи параметров, она уже решена спасибо всем откликнувшимся.
а сейчас не через CorBindToRuntimeEx?
vim>В данной ситуации осуществляется попытка вызова managed метода из native среды и даже большая проблема не передачи параметров, а получения возвращаемого значения.
в начальном посте упор был больше на параметры, я подумал, что проблема именно с этим
vim>Вот вопрос и заключается в том, что может кто делал что то подобное и может ткнуть носом, куда копать, а то что то затык какой то блин.
я делал
приведите сигнатуру вашего управляемого кода, и побольше кода как вы его вызываете
Не переходите улицу на тот свет..
Re[6]: Передача параметров .NET методу через UnmanagedAPI из
Сейчас пытаюсь понять общую концепцию работы с управляемой средой из неуправляемой. Вот через ниже приведенный код получается передать только один параметр, а через GetParametrs() пытаюсь получить возвращаемое значение, но почему то значение всегда пустое приходит. Вопрос на самом деле в следующим как корректно обработать возвращаемые значения и передавать сложные типы (объекты структуры) из неуправляемого кода в управляемый.
Здравствуйте, agos, Вы писали:
A>Здравствуйте, vim, Вы писали:
vim>>Спасибо большое за пример, сейчас буду разбираться.
vim>>А есть какая-нибудь инфа по теме в интете или может в книжке какой, просто хочется разобраться с этим вопросом уже для себя. A>Hosting (Unmanaged API Reference), также есть книга Customizing the Microsoft® .NET Framework Common Language Runtime. A>Ну и просто поискать в инете по CorBindToRuntimeEx.
К стати Уважаемые, если использовать загрузку библиотеки при помощи Load_3, то есть как массив байт, то почему то все что было написано не работает, интересно понять почему, заранее благодарен за ответы
Re: Передача параметров .NET методу через UnmanagedAPI из Na
Сапсибо вам большое за помощь, но у меня возник еще такой вопрос, а как передать в качестве параметра не простой тип (строки, целые числа, ...), а объект или структуру и вернуть обработанный в качестве возвращаемого параметра.
То есть создаем экземпляр объекта в Native части передаем его в качестве параметра Managed методу, после обработки managed кодом возвращаем обратна в native часть, можно как то решить эту проблему или так нельзя сделать в принципе ???
Re[2]: Передача параметров .NET методу через UnmanagedAPI из
От:
Аноним
Дата:
21.12.07 13:37
Оценка:
Здравствуйте, vim, Вы писали:
vim>Сапсибо вам большое за помощь, но у меня возник еще такой вопрос, а как передать в качестве параметра не простой тип (строки, целые числа, ...), а объект или структуру и вернуть обработанный в качестве возвращаемого параметра.
vim>То есть создаем экземпляр объекта в Native части передаем его в качестве параметра Managed методу, после обработки managed кодом возвращаем обратна в native часть, можно как то решить эту проблему или так нельзя сделать в принципе ???
Можно конечно, проще всего сделать через ComVisible объекты
Re[3]: Передача параметров .NET методу через UnmanagedAPI из
В данном конкретном случае использование атрибута ComVisible неприемлимо, поэтому интересно как это можно реализовать по средствам использования Unmanaged API, как в примере приведенном выше для простых типов.
Re[4]: Передача параметров .NET методу через UnmanagedAPI из
Здравствуйте, vim, Вы писали:
vim>В данном конкретном случае использование атрибута ComVisible неприемлимо, поэтому интересно как это можно реализовать по средствам использования Unmanaged API, как в примере приведенном выше для простых типов.
Тогда лучше на .Net сделать ComVisible обёртку над тем кодом, где "использование атрибута ComVisible неприемлимо". И работать с ней чере интерфейсы.
Если уж и этот вариант не подходит, то тогда, видимо, остаётся делать через VARIANT и SafeArray.
Не переходите улицу на тот свет..
Re[5]: Передача параметров .NET методу через UnmanagedAPI из
Доброго всем времени суток, на мой взгляд достаточно интересная беседа, по этому хотел бы включится в разговор, вот с передаче таким образом простых типов все ясно, а вот как передавать типы вида Point/StreamReader и прочие, которые являются стандартными для C#, но при этом не имеют аналогов в неуправляемом коде?
Заранее благодарен за ответы, спасибо.
Re[11]: Передача параметров .NET методу через UnmanagedAPI и
Здравствуйте, CodeWolf, Вы писали:
CW>а вот как передавать типы вида Point/StreamReader и прочие, которые являются стандартными для C#, но при этом не имеют аналогов в неуправляемом коде?
Честно говоря проблем не вижу, т.к., вроде бы, вся BCL ComVisible (уж StreamReader точно). Просто работайте как с COM объектами.
Расскажите что вы делаете, может есть и проще способы чем в нативном коде работать с .Net объектами, хотя и тут ничего особенного нету, главное за ресурсами следить.