DllImport разница между Compact Framework и Full Framework - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть приложение, написанное на .NET Compact Framework 3.5 для использования в Windows CE.

Приложение также отлично работает на любых полнофункциональных ОС Windows.

Я хочу добавить регулятор громкости в свое приложение, и требуемый DllImport такой же, как показано ниже для полнофункциональной ОС:

[DllImport("winmm.dll")]  
public static extern long waveOutSetVolume(UInt32 device, UInt32 Volume);  

Для компактных рамок это:

[DllImport("coredll.dll", SetLastError=true)]
public static extern long waveOutSetVolume(UInt32 device, UInt32 Volume);  

Единственная реальная разница между этими двумя именами - это имя DLL, которая требуется для DllImport.

Windows CE требует coredll.dll, в то время как для полных окон требуется winmm.dll?

Что делать здесь, кроме создания разных выпусков .exe?

1 Ответ

0 голосов
/ 04 сентября 2018

Вы можете предложить два статических класса для загрузки dll, один для coredll.dll и один для winmm.dll . В зависимости от вашей платформы (которую вы можете предоставить в своем приложении) вам просто нужно использовать правильный класс.

Загрузка dll будет выполнена, когда вы попытаетесь получить доступ к экспортированной функции в первый раз, поэтому этот подход будет работать.

...