DllImport Compact Framework 和 Full Framework 之间的区别

DllImport difference between Compact Framework and Full Framework

我有一个用 .NET Compact Framework 3.5 编写的应用程序,用于 Windows CE。

该应用程序在任何完整框架上也能完美运行 windows OS。

我想为我的应用程序添加音量控制,完整框架所需的 DllImport 如下所示 OS:

[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);  

两者之间唯一真正的区别是 DllImport 需要的 DLL 的名称。

Windows CE 需要 coredll.dll 而完整 windows 需要 winmm.dll?

除了创建不同版本的 .exe 之外,还能做什么?

您可以提供两个静态 classes 用于加载 dll,一个用于 coredll.dll,一个用于 winmm.dll。根据您的平台(您可以在您的应用程序中提供),您只需要使用正确的 class.

dll 加载将在您第一次尝试访问导出的函数时完成,因此这种方法应该有效。