Есть чужая exe-шка, которая грузит мою dll, которая использует GetNetworkParams из iphlpali -- 64 битная dll-ка в Win8+ крашится при вызове GetNetworkParams; 32 битная версия работает нормально.
При этом вот щито:
typedef DWORD (WINAPI* lclGetNetworkParams)(PFIXED_INFO pFixedInfo, PULONG pOutBufLen);
static lclGetNetworkParams pGetNetworkParams = 0;
static HMODULE hLib = 0;
if (0 == hLib || 0 == pGetNetworkParams)
{
wchar_t t[1024] = {0};
GetSystemDirectoryW(t, 1024);
lstrcatW(t, L"\\IPHLPAPI.DLL");
hLib = LoadLibraryW(t);
if (0 != hLib)
{
pGetNetworkParams = (lclGetNetworkParams)GetProcAddress(hLib, "GetNetworkParams");
}
}
// pGetNetworkParams != &GetNetworkParams !!!
соответственно, что не используй и pGetNetworkParams, и GetNetworkParams --> крашится одинаково. Как крашится? Не знаю, exe-шка висит в диспетчере задач, параллельные треды работают.
Что делать то? А?