Training
Module
Import data in different formats for use in scripts by using Windows PowerShell cmdlets - Training
This module explains how to import data from a text file, CSV file, XML file, and JavaScript Object Notation (JSON) file.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
__declspec(dllimport)
In the case of data, using __declspec(dllimport)
is a convenience item that removes a layer of indirection. When you import data from a DLL, you still have to go through the import address table. Before __declspec(dllimport)
, this meant you had to remember to do an extra level of indirection when accessing data exported from the DLL:
// project.h
// Define PROJECT_EXPORTS when building your DLL
#ifdef PROJECT_EXPORTS // If accessing the data from inside the DLL
ULONG ulDataInDll;
#else // If accessing the data from outside the DLL
ULONG *ulDataInDll;
#endif
You would then export the data in your .DEF file:
// project.def
LIBRARY project
EXPORTS
ulDataInDll CONSTANT
and access it outside the DLL:
if (*ulDataInDll == 0L)
{
// Do stuff here
}
When you mark the data as __declspec(dllimport)
, the compiler automatically generates the indirection code for you. You no longer have to worry about the steps above. As stated previously, do not use __declspec(dllimport)
declaration on the data when building the DLL. Functions within the DLL do not use the import address table to access the data object; therefore, you will not have the extra level of indirection present.
To export the data automatically from the DLL, use this declaration:
// project.h
// Define PROJECT_EXPORTS when building your DLL
#ifdef PROJECT_EXPORTS // If accessing the data from inside the DLL
__declspec(dllexport) ULONG ulDataInDLL;
#else // If accessing the data from outside the DLL
__declspec(dllimport) ULONG ulDataInDLL;
#endif
Training
Module
Import data in different formats for use in scripts by using Windows PowerShell cmdlets - Training
This module explains how to import data from a text file, CSV file, XML file, and JavaScript Object Notation (JSON) file.