Unmanaged c++ dll разной разрядности в проекте С# под платформу "Any CPU", Получить температуру с термодатчика - C#
Формулировка задачи:
Нужно получить температуру с термодатчика Nvidia. Для получения температуры видеокарты использовал NvAPI, собрал свои 2 dll (x86, x64) но интересует немного другое. Как скомпилировать из: nvapi.lib, nvapi64.lib -> MyNvTemp.dll (под платформу "Any CPU").
Или как-то подружить шарп с .lib библиотеками?
Может как-то использовать nvapi.dll напрямую через DllImport?
Да и как заменить DllImport, что-бы библиотеку можно было загрузить по ходу выполнения программы, а не сразу.
Решение задачи: «Unmanaged c++ dll разной разрядности в проекте С# под платформу "Any CPU", Получить температуру с термодатчика»
textual
Листинг программы
public static class HID_Lib { private static bool is_x86() { if (IntPtr.Size == 4) return true; else return false; } public static bool HID_DeviceTest(Int16 ProductID, Int16 VendorID, Int16 VersionNumber, Int16 Index) { if (is_x86()) return HID_Lib_x86.HID_DeviceTest(ProductID, VendorID, VersionNumber, Index); else return HID_Lib_x64.HID_DeviceTest(ProductID, VendorID, VersionNumber, Index); } } private static class HID_Lib_x86 { [DllImport("HID_Lib_Plus.dll")] public static extern bool HID_DeviceTest(Int16 ProductID, Int16 VendorID, Int16 VersionNumber, Int16 Index); } private static class HID_Lib_x64 { [DllImport("HID_Lib_Plus_x64.dll")] public static extern bool HID_DeviceTest(Int16 ProductID, Int16 VendorID, Int16 VersionNumber, Int16 Index); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д