我正在用C++编写一个非托管动态链接库。在Windows DLL中使用float作为函数参数是个好主意吗?
我希望我的动态链接库能够在尽可能多的语言(VB6,.NET等)中使用。为此,我使用了STDCALL并避免了C++类型。
大多数语言都能正确处理浮点数吗?如果不是,我应该使用什么?
发布于 2009-05-27 19:47:08
大多数编译器中使用的float类型甚至在一些IEEE格式中都是标准化的,所以请继续使用。
发布于 2009-05-27 19:45:58
所有的微软语言,如VB和C#都可以使用它。实际上,您应该可以使用VARIANT支持的任何类型。
发布于 2009-05-27 20:02:15
诀窍是弄清楚如何将值从调用语言“封送”为dll中的函数所期望的类型。很多时候,调用语言中的数据类型将与C使用的类型相似,但略有不同。发生这种情况时,您需要一种方法将值复制到C类型中,然后将其传递给DLL。
希望这篇来自MSDN的文章能帮助您入门:
http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.aspx
https://stackoverflow.com/questions/917643
复制相似问题