Kompilowanie FreeType do DLL (w przeciwieństwie do biblioteki statycznej)
Chcę używać FreeType w projekcie c#. Znalazłem to wiążące , ale nadal potrzebuję freetype.dll. Zwykle używam statycznej biblioteki w moich projektach c++, więc nigdy jej nie skompilowałem. Otwierając freetype-solution (VS2010) zauważyłem, że nie ma konfiguracji dla biblioteki dynamicznej - tylko statycznej. Próbowałem zrobić własną konfigurację i dostałem go do generowania freetype.dll. Jeśli używam go z powiązaniem c#, dostaję wyjątek, że nie znaleziono punktu wejścia FT_Init_FreeType. Dowolne pomysł jak muszę dostosować projekt freetype, aby wyeksportować te funkcje?
2 answers
Jeśli nie masz nic przeciwko starej wersji (marzec 2008), możesz wejść na stronę FreeType Dla Windows , pobrać najnowszy pakiet binarny, otworzyć .ZIP i rozpakuj FreeType6.dll z katalogu bin. Po prostu zmień odpowiednią nazwę.
Jeśli potrzebujesz nowszej wersji, oto jak możesz skompilować najnowszą wersję:
Pobierz najnowsze źródło (2.4.6 od dziś) z http://sourceforge.net/projects/freetype/files/freetype2/
Otwórz Visual Studio 2010 i załaduj
freetype.sln
z katalogubuilds\win32\vc2010
.Otwórz konfigurację projektu i w zakładce
General
ZmieńConfiguration Type
naDynamic Library (.dll)
-
Otwórz plik
ftoption.h
i dodaj te wiersze (na przykład w sekcji Uwagi "DLL export compilation"):#define FT_EXPORT(x) __declspec(dllexport) x #define FT_BASE(x) __declspec(dllexport) x
Zmień konfigurację kompilacji projektu na "Release"
Skompiluj projekt. Powinieneś teraz mieć
freetype246.dll
w kataloguobjs\win32\vc2010
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-22 08:37:35
Założę się, że problem polega na tym, że twój projekt DLL nie eksportuje żadnych symboli, więc podczas gdy cały kod jest tam, adresy symboli nie są w tabeli eksportu, więc nikt nie może dostać się do nich z zewnątrz.
To pytanie ma dobre rozwiązanie, aby wyeksportować wszystkie symbole w .dll bez konieczności ręcznego wyświetlania ich listy.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:29:46