Czy istnieje przewodnik po najlepszych praktykach do rozpowszechniania rodzimych bibliotek C dla systemu Windows?

Czy ktoś wie o podręczniku najlepszych praktyk dotyczącym wdrażania natywnego (bez COM, nie .NET) ANSI C Biblioteki współużytkowane Windows?

Nasz produkt używa zlib i dystrybuujemy gotowe pliki binarne na naszej stronie pobierania, które różnią się od tych na oficjalnej stronie zlib. Zgaduję, że powodem tego jestaby uniknąć mieszania środowisk wykonawczych. Oficjalne są zbudowane przeciwko msvcrt przy użyciu VC ++ 6.0, a VS.NET/2005/2008 użyje msvcrt71 / 80/90.

Chcę stworzyć rozwiązania i projekty VS2005 / 8, które odpowiednio zbudują dla nas zlib i rozprowadzą je zamiast tego, co mamy teraz. Chciałbym to zrobić starannie i rozpowszechnić odpowiednio użyteczny pakiet, który mógłbym następnie wysłać do kuratorów zlib w celu włączenia ich do dystrybucji źródłowej. Znalezienie wiarygodnych informacji okazało się jednak kłopotliwe. Mam kilka książek na temat programowania Win32 i znalazłem wiele artykułów w sieci, ale nic z tego nie robi dokładnego opisu tego, conaprawdę trzeba rozpowszechniać.

Na przykład zlib dystrybuuje pliki .exp, .lib i .def, w których fftw dystrybuuje pliki .def, ale nie pliki pośredniczące .lib i .exp. Myślę, że mógłbym po prostu zrzucić wszystko, co tam jest użyteczne (lub po prostu odzwierciedlić to, co ma obecnie oficjalny zlib), ale chciałbym wiedziećczemu musi tam być i do jakich katalogów należy.

Czy istnieją dobre przykłady dobrze utrzymanych dystrybucji Windows bibliotek, które powstały w świecie Uniksa?

Oficjalne dystrybucje binarne zlib (przewiń w dół)

Nasze dystrybucje Windows

W CELU WYJAŚNIENIA:

Dystrybuujemy bibliotekę i udostępniamy zlib (głównie) użytkownikom systemu Windows, ponieważ zazwyczaj nie są one dostępne. Chcę, aby nasza wersja zlib była użyteczna jako komponent w ogóle, a nie tylko jako plik .dll, który zużywa nasz produkt. Jesteśmy open source i szeroko stosowane, dlatego chcemy udostępnić całe środowisko kompilacji i łatwo dostosować do dowolnego kompilatora, którego chcesz używać.

questionAnswers(3)

yourAnswerToTheQuestion