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 加载将在您第一次尝试访问导出的函数时完成,因此这种方法应该有效。
我有一个用 .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 加载将在您第一次尝试访问导出的函数时完成,因此这种方法应该有效。