代码之家  ›  专栏  ›  技术社区  ›  jm.

在Windows dll函数参数中使用浮动

  •  2
  • jm.  · 技术社区  · 16 年前

    我在C++中编写了一个非托管DLL。在Windows DLL中使用float作为函数参数是个好主意吗?

    我希望我的动态链接库可以使用尽可能多的语言(vb6,.net等)。为此,我使用了STDCALL并避免了C++类型。

    大多数语言处理浮动是否正确?如果没有,我应该使用什么?

    4 回复  |  直到 16 年前
        1
  •  4
  •   xtofl Adam Rosenfield    16 年前

    这个 float 大多数编译器中使用的类型甚至以某种IEEE格式标准化,所以继续。

        2
  •  2
  •   i_am_jorf    16 年前

    所有的微软语言,如vb和c,都可以使用。事实上,使用任何类型的 VARIANT 我们的支持。

        3
  •  1
  •   Jason Dagit    16 年前

    技巧是找出如何将调用语言中的值“马歇尔”为dll中函数所期望的类型。许多时候,调用语言中的数据类型将类似,但与C使用的类型略有不同。当发生这种情况时,需要一种方法将值复制到C类型,然后将其传递给DLL。

    希望这篇来自msdn的文章能让你开始:

    http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.aspx

        4
  •  0
  •   Kevin    16 年前

    简而言之,主流语言将处理浮动参数到一个dll函数,而开销很少甚至没有。

    您可以使用任何基本的C数据类型,如果调用代码不能处理它,问题就在它们的末尾,而不是您的,因为您生成了一个完全有效的DLL。