【问题标题】:DllImport difference between Compact Framework and Full FrameworkCompact Framework 和 Full Framework 的 DllImport 区别
【发布时间】:2018-09-04 14:25:11
【问题描述】:

我有一个用 .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);  

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

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

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

【问题讨论】:

  • 在这些非常不同的平台上,DLL 中的函数分布是不同的!

标签: c# audio compact-framework windows-ce dllimport


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-08-11
    • 1970-01-01
    • 2012-04-06
    • 2011-01-03
    • 1970-01-01
    • 2021-01-02
    • 2020-12-09
    • 2010-12-11
    • 1970-01-01
    相关资源
    最近更新 更多