代码之家  ›  专栏  ›  技术社区  ›  I. J. Kennedy ShankarSangoli

有没有一种更轻松的方法可以从C调用win32?

  •  8
  • I. J. Kennedy ShankarSangoli  · 技术社区  · 15 年前

    每隔几个月,我就需要从C_给win32打电话。虽然我已经做了十几次,但我通常忘记了确切的设计,所以我浏览了网页或旧代码,找出我需要的dllimport语句等。

    我独自一人吗?

    是否有经过批准的“win32”类具有整个win32 api所必需的声明?似乎应该有。也许我错过了什么。

    6 回复  |  直到 15 年前
        1
  •  8
  •   user200783    15 年前

    你可能会发现 http://www.pinvoke.net 乐于助人。

    此外,对于常见的win32函数,您可以尝试 P/Invoke Interop Assistant .

        2
  •  1
  •   itowlson    15 年前

    没有批准的win32类,但是 http://www.pinvoke.net 是这些事情的重要中心资源。

        3
  •  1
  •   Mike Hofer    15 年前

    这听起来是一个开源项目的好主意。

    /他们戴上思维帽,跑向pinvoke.net。

        4
  •  1
  •   Marthinus    15 年前

    获得正确的dllimport语句很容易,就像大家所说的那样,但是为了方便使用,我通常将需要的win32函数包装在C类中,并编译到我的核心助手程序集中。所以下次我只是引用程序集。所以如果我需要一些win32函数,很可能它已经在我的helper lib中了,如果不添加它的话。

    另外,我将返回代码映射到异常,也就是说,如果hresult不是零,我会抛出一个异常,这样我的C应用程序就不需要知道hresult或返回代码了。

        5
  •  0
  •   leon    15 年前
        6
  •  0
  •   SwDevMan81    15 年前

    你可以使用 Reflector 搜索win32native。它有一系列的定义,你可以用来进行pinvoking。