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

在Windows DLL函数参数中使用浮点 我在C++中编写了一个非托管DLL。在Windows DLL中使用float作为函数参数是一个好主意吗,c++,windows,dll,C++,Windows,Dll,我希望我的DLL可以从尽可能多的语言(VB6、.NET等)使用。为此,我使用了STDCALL并避免了C++类型。 大多数语言都能正确处理float吗?如果没有,我应该使用什么?所有Microsoft语言,如VB和C#都可以使用。事实上,您可以使用s支持的任何类型。大多数编译器中使用的float类型甚至在某些IEEE格式中是标准化的,所以请继续。诀窍是找出如何将调用语言中的值“marshall”为dll中函数所期望的类型。很多时候,调用语言中的数据类型与C使用的类型相似,但略有不同。当这种情况发生

我希望我的DLL可以从尽可能多的语言(VB6、.NET等)使用。为此,我使用了STDCALL并避免了C++类型。
大多数语言都能正确处理float吗?如果没有,我应该使用什么?

所有Microsoft语言,如VB和C#都可以使用。事实上,您可以使用s支持的任何类型。

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

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

希望MSDN中的这篇文章能够帮助您开始:


简单的回答是,主流语言将以很少甚至没有开销的方式将浮点参数处理到DLL函数中


使用任何基本C数据类型都很好,如果调用代码不能处理它,问题就在其端,而不是你的,因为你产生了一个完全有效的DLL。< /P>是IEEE 754,因为好奇。我想我的问题是我是否需要Masll浮动在ScLee C++ DLL(非托管)中。@ JM:FLUTS是在C++方面看起来与C++相同的BLTABLE类型。见本文: