Private Declare Function LoadLibrary Lib "kernel32" (ByVal lpFileName As String) As IntPtr
User-Defined Types:
None.
Notes:
None.
Tips & Tricks:
Please add some!
Sample Code:
private void ReadFile(ReadFileCallbackDelegate cb) {
hExe = LoadLibrary(mFileName);
if (hExe.ToInt32() == 0) {
throw new ApplicationException("Cannot open " + mFileName);
}
GCHandle gch = GCHandle.Alloc(mFiles); //convert object to handle
if (EnumResourceNames(hExe, "FILE", cb, (IntPtr)gch) == false) {
gch.Free();
throw new ApplicationException("Error reading files in the installer");
}
gch.Free();
}
Alternative Managed API:
Do you know one? Please contribute it!
The LoadLibrary API maps the specified DLL file into the address space of the calling process.
1/15/2020 12:35:28 AM - -62.4.65.26
The LoadLibrary API maps the specified DLL file into the address space of the calling process.
1/15/2020 12:35:28 AM - -62.4.65.26
ByVal is a VB keyword that specifies a variable to be passed as a parameter BY VALUE. In other words, if the function or sub changes the value of the internal variable, it does not change the value of the external variable that was passed to it.
4/25/2007 3:19:55 AM - josep1er@cmich.edu-141.209.229.179
An IntPtr is a pointer to a memory location (unmanaged) that adapts to the platform it is running on (64-bit, etc.) UNLIKE a standard int/Integer. You should always use this type for unmanaged calls that require it, even though an int will appear to work on your development machine.