Hello; I am trying to understand the concept of "Explicit Linking" but the following code gives the error error C2365: 'GetLogicalDrives' : redefinition; previous definition was 'function' Other API functions such as FindFirstVolume, FindNextVolume, FindVolumeClose etc works properly. Any ideas ? Code: #include <windows.h> #include <stdio.h> DWORD (WINAPI *GetLogicalDrives) (VOID); int main() { // Load the dll HMODULE hmod; if((hmod = LoadLibrary(TEXT("Kernel32.dll")))) { if((GetLogicalDrives = (DWORD (WINAPI*)(VOID))GetProcAddress(hmod,"GetLogicalDrives"))) { DWORD drivesId = GetLogicalDrives(); } } return 0; }
Well it's not wrong syntax because it is a function pointer. Anyway, i solved my problem. For those wondering, the function pointer's name was same as the API's which was defined in windows.h.