是否可以从Wine中运行的Windows应用程序调用本地Linux API
Is it possible to call native Linux API from a Windows application running in Wine?
场景
我有一个为Windows应用程序(用C++(编写的插件(dll(。
该应用程序在Wine下的Linux上运行良好,但在插件中,我想使用Wine中尚未提供的功能。
假设我可以在运行时检测到应用程序正在Wine中运行,我是否可以动态加载本机Linux库(或以任何其他方式访问本机Linux API(以模拟所述功能?
我很好奇这是否可以在没有任何严重黑客攻击的情况下完成。
似乎有人遇到过类似的问题,或者至少预测到了这种情况。包装库应该能帮助你:
出于这样或那样的原因,您可能会发现自己有一个Linux库要将其用作Windows DLL。有各种各样的原因包括:
- 您有一个可以扩展的纯二进制Windows应用程序通过诸如文本编辑器或IDE之类的插件
简而言之,您应该创建瘦Wine内置dll,它就像PE二进制文件的ABI和本地Linux库的ABI之间的桥梁。然后你应该把你的代码链接到这个包装器上。对于Windows发行版,您可以提供带有空存根的"包装器"。这样的方法允许您为插件使用一个二进制文件,该二进制文件将在Linux上使用葡萄酒特定的功能包装器DLL,在Windows上使用存根DLL。
相关文章:
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如果整个应用程序是虚拟映射的,为什么 new 会进行系统调用?
- C# DLL 从C++应用程序调用 SOAP Web 服务
- 如何在 Win32 C++控制台应用程序中调用 UWP 类库
- 调用 java 的回调() 时应用程序崩溃.由于 detatchThread 而获得运行时错误
- JNI 在应用程序中检测到错误:在为 innerclass 调用 NewObject 时使用了无效的 jobject
- 有时ShowWindow从不调用OnShowWindow,主应用程序挂起
- C++控制台应用程序调用C++/CLI静态库
- 如果在 DLL 和调用应用程序中使用 GPGPU API,会发生什么情况
- 在 Windows 启动时调用应用程序时无法正常启动
- Intel Pin调用应用程序中的函数
- 我可以在OpenFrameWorks中调用应用程序以外的其他内容
- 调用应用程序libjingle,用户自动从花名册中删除.为什么?
- C#使用命令行调用应用程序
- 如何在C++中从DLL到调用应用程序进行通信
- Clr Dll是由测试程序加载的,但不是由调用应用程序加载的
- 从 PHP 调用 C++ 应用程序 - 输出显示"Array"
- 以系统用户 (Windows) 身份调用应用程序
- Sudo Java调用C应用程序和权限
- 如何编写不会立即将控制权释放给调用应用程序的 Windows 应用程序