Я попытался использовать библиотеку Unmanaged Exports (.NET DllExport) в надежде что с ее помощью получится использовать свою DLL
без .net framework
.
Пример:
[return: MarshalAs(UnmanagedType.LPWStr)]
[DllExport("Test", CallingConvention = CallingConvention.Cdecl)]
public static string Test(
[MarshalAs(UnmanagedType.LPWStr)] string firstName,
[MarshalAs(UnmanagedType.LPWStr)] string lastName)
{
return string.Format("Hello {0} {1}", firstName, lastName);
}
Подключил свою DLL
к программе на Delphi
, но при вызове метода вышла ошибка что отсутствует .net framework
Насколько я понял моя DLL
должна стать (unmanaged code) и работать без .net framework
. Я прав, или я не до конца понимаю суть?
Код написанный на C# компилируются в промежуточный код IL для виртуальной машины .NET и может быть выполнен только ей. Поэтому когда вы запускаете свое приложение на другой машине, то она никаким образом не может выполнится без .NET фреймворка.
Если я правильно понял, библиотека Unmanaged Exports (.NET DllExport) выполняет всего лишь добавление имен для экспорта, но на сам код IL она не влияет. Поэтому ее использование никак не поможет запустить ее на машине без фреймворка.
Что бы данный подход сработал, надо заставить компилятор перевести IL код для виртуальной машины в нативный код для процессора. Мне не встречалась подобная функциональность, но на EnSO пишут про .NET Native который умеет это делать и включен в VS2015.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть классическое MVVM приложение VIEW содержит textbox, где Text="{Binding Message}" во ViewModel
Имеется паттерн /d/d:/d/d:/d/d для времениМетоды Regex
Возникла проблема с выполнением блокировки пользователей на сайтеА именно, нет понимания как сделать автоматическое открытие страницы...