葡萄酒有多完整



我知道Wine是一个软件兼容层,基本上是将Windows系统调用重定向到linux本机系统调用(当然,当涉及DirectX时,它可能更复杂(

有没有办法知道软件有多完整?兼容层覆盖的Windows系统调用比例是多少,哪些尚未编码?

我没有任何统计数据可以指向您,我会说最好的方法(也是唯一重要的方法(就是测试您的应用程序。你真的关心那些可能无法实现的晦涩和/或未记录的功能吗?

未导出的功能数量应该非常低,但这并不意味着它们已实际实现。

几个 Windows 函数只是简单的存根,没有真正的实现:

  • 有些在 Wine .spec 文件中被标记为存根。未实现的调用看起来像@ stub PolyPatBlt,而实现的函数看起来更像@ stdcall PolyPatBlt(long ptr long)

    advapi32.spec 的示例:

    @ stdcall LsaClose(ptr)
    @ stub LsaCreateAccount
    @ stub LsaCreateSecret
    @ stub LsaCreateTrustedDomain
    @ stdcall LsaCreateTrustedDomainEx(ptr ptr ptr long ptr)
    @ stub LsaDelete
    @ stdcall LsaDeleteTrustedDomain(ptr ptr)
    @ stdcall LsaEnumerateAccountRights(ptr ptr ptr ptr)
    
  • 某些函数可能未在 .spec 文件中标记为存根,但实际实现可能不完整或可能始终返回失败。

最新更新