0

I'm attempting to target i686-pc-windows-msvc, but this code

extern "C" {
    pub fn GetDC(hdc: *const c_void) -> *const c_void;
}

fails to compile with

"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX64\\x86\\link.exe" "/NOLOGO" "/NXCOMPAT" "/LARGEADDRESSAWARE" "/SAFESEH"
...
...
"ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "ntdll.lib" "advapi32.lib" "cfgmgr32.lib" "credui.lib" "kernel32.lib" "mswsock.lib" "ntdll.lib" "secur32.lib" "synchronization.lib" "user32.lib" "ws2_32.lib" "user32.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "msvcrt.lib"
error LNK2019: unresolved external symbol __imp__GetDC

I have no errors when targeting x86_64-pc-windows-msvc and everything works.

1 Answers1

0

changing extern "C" to extern "system" fixes it