我知道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 文件中标记为存根,但实际实现可能不完整或可能始终返回失败。