【问题标题】:Is the Win32 API function definition available in a "database"/XML format?Win32 API 函数定义是否以“数据库”/XML 格式提供?
【发布时间】:2008-09-22 11:17:25
【问题描述】:

我正在寻找一些“数据库”/XML 格式的 win32 API 列表。

我需要它来轻松地在 win32 API 和我正在使用的高级语言(harbour/xharbour)之间创建一个“转换层”。由于这运行的是Pcode,所以需要将参数转换为C标准...

我想自动化这个过程,而不是手动编写代码......

例如,windows API 定义(取自 MSDN)

DWORD WINAPI GetSysColor(
  __in  int nIndex
);

应该转化为

HB_FUNC( GETSYSCOLOR )
{
    hb_retnl( (LONG) GetSysColor( hb_parni( 1 ) ) );
}

【问题讨论】:

    标签: database winapi


    【解决方案1】:

    AFAIK,pinvoke.net 仅存储带有呼叫定义的 PInvoke 文本数据。如果您想要的是用作 API 的预解析数据库的东西,这不是很有用。

    也许您可以创建一个小型解析器,它将获取包含文件并将其转换为您需要的内容。在这种情况下,我建议使用lcc-win32 的包含文件,因为它们几乎是 SDK 标头的无脂肪/无 BS 版本(它们没有你想要的一堆特殊保留字不得不忽略等)

    【讨论】:

      【解决方案2】:

      当然,您有 Microsoft Platform SDK,但它是原始 .h C 代码,很难解析!

      VB 用户(和 Delphi 用户,可能还有其他一些语言)也做过类似的工作,例如 ApiViewer 有这样的数据库,但采用了一些专有的二进制格式(.apv 扩展名),所以你可能需要反转- 设计它。
      同样,有一个 API 指南,托管在 Allapi.net 上,但后者现在似乎是一个停车场。它使用 .api 文件(同样是二进制专有的)。

      【讨论】:

        【解决方案3】:

        关于我所知道的最接近的事情是:http://pinvoke.net/ 也许他们会与您分享他们的数据? 他们有一个访问这些数据的 VS 工具,所以它可能是一个网络服务。你甚至可以闻出来。

        【讨论】:

          【解决方案4】:

          似乎有一些数据库(以及使用它的应用程序,名为“PInvoke Interop Assistant”)位于:

          https://github.com/jaredpar/pinvoke/tree/master/StorageGenerator/Data

          虽然我现在不确定许可证是什么 - 因此是 I've asked the authors

          【讨论】:

            猜你喜欢
            • 2018-05-03
            • 1970-01-01
            • 2014-03-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-09-07
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多