Declare Currency Type to Be Double When Returning from DLL (72274)



The information in this article applies to:

  • Microsoft Visual Basic Standard Edition for Windows 2.0
  • Microsoft Visual Basic Standard Edition for Windows 3.0
  • Microsoft Visual Basic Professional Edition for Windows 2.0
  • Microsoft Visual Basic Professional Edition for Windows 3.0
  • Microsoft Visual Basic Standard Edition for Windows 1.0

This article was previously published under Q72274

SUMMARY

When using Microsoft Visual Basic for Windows, if you want to pass a parameter to a dynamic link library (DLL) routine, or receive a function return value of type Currency from a DLL routine written in Microsoft C, the parameter or function returned should be declared as a "double" in the C routine.

NOTE: C does not support the Basic Currency data type, and although specifying the parameter as type "double" in C will allow it to be passed correctly, you will have to write your own C routines to manipulate the data in the Currency variable. For information on the internal format of the Currency data type, query in the Microsoft Knowledge Base using the following words:

Basic and Currency and internal and format

MORE INFORMATION

When creating a DLL function that either receives or returns a Currency data type, it may be useful to include the following declaration:
   typedef double currency;
				
Based on this typedef, a sample DLL routine to return a currency value might be declared as follows:
   currency FAR pascal test(...);
				

Modification Type:MajorLast Reviewed:12/12/2003
Keywords:KB72274