c ++ - DLL helvede og implementering: bedste praksis til native Windows applikationer

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at få et håndtag, hvor DLL'er bruger min C ++ Win32-applikation. Dette er ikke altid oplagt - jeg kan forbinde et bibliotek, men det er noget sværere at finde ud af, hvilke systemdLL'er der er brug for, især hvis de 're system DLLs.
Som et tilfældigt punkt sendte jeg for nylig en testbygning til et fjernt medlem af mit hold, der driver en ældre version af Windows.


hans maskine klagede over
'Api-ms-win-core-misc-l1-1-0.dll' mangler (jeg antager, at dette havde noget at gøre med min brug af 'GetSystemTime' og relaterede funktioner, men det er en del af mit problem: hvordan gør jeg fortælle?) Men da jeg ser en Windows-systemfil, hvordan kan jeg pakke et installationsprogram, der sikrer, at disse filer er installeret?


Jeg har også brugt afhængighedsvælger og 'listdlls.exe' for at finde alle de DLL'er, der bruges af mit program, men afhængighedsvælgeren kan ikke indlæse den DLL og 'listdlls' synes at lydløst ignorere den, så jeg kan ikke finde deres placering for at omfordele dem (hvilket føles som den forkerte tilgang alligevel).


Mit spørgsmål er derfor, hvad der er den nuværende bedste praksis til:



  • grundigt afgøre alle system DLL'erne, der bruges af min
    ansøgning

  • Skriv et installationsprogram, der sikrer, at disse biblioteker er
    installeret på en brugermaskine

  • Find ud af, hvilke omfordelbare installatører der er brug for fra en given liste over DLLS



Jeg ville have troet at installere en visuel studio omfordelbar
   pakke (f.eks.
   https://support.microsoft.com/en-gb/help/2977003/the-latest-supported-visual-c-downloads)
   ville være nok. Til min viden har teammedlemmet installeret dette
   men får stadig DLL-problemer. [1]

Bedste reference