Desidero utilizzare FreeType in un progetto C#. Ho trovato questo binding, ma ho ancora bisogno di un freetype.dll. Di solito uso una libreria statica nei miei progetti C++, quindi non ne ho mai compilato uno. Aprendo la soluzione freetype (VS2010) ho notato che non esiste una configurazione per una libreria dinamica, solo quelle statiche. Ho provato a creare la mia configurazione e ho ottenuto di generare un freetype.dll. Se lo uso con il C# -binding ottengo un'eccezione, che il punto di ingresso FT_Init_FreeType non è stato trovato. Qualche idea su come devo adattare il progetto freetype per esportare quelle funzioni?Compilazione di FreeType a DLL (a differenza della libreria statica)
risposta
Se si sta bene con una versione precedente (marzo 2008), è possibile andare alla pagina FreeType for Windows, scaricare l'ultimo pacchetto di binari, aprire il file .ZIP ed estrarre FreeType6.dll dalla directory bin. Basta rinominarlo in modo appropriato.
Se avete bisogno di una versione più recente, ecco come si può compilare l'ultima:
scaricare l'ultima fonte (2.4.6 ad oggi) da http://sourceforge.net/projects/freetype/files/freetype2/
aprire Visual Studio 2010 e caricare
freetype.sln
dalla directorybuilds\win32\vc2010
.aprire la configurazione del progetto, e nella scheda
General
, modificareConfiguration Type
alDynamic Library (.dll)
aprire il file
ftoption.h
, e aggiungere queste righe (nei pressi del "compilation di esportazione DLL", osserva la sezione, per esempio):#define FT_EXPORT(x) __declspec(dllexport) x #define FT_BASE(x) __declspec(dllexport) x
modificare la configurazione della compilazione del progetto su "Rilascio".
compila il progetto. Ora dovresti avere un
freetype246.dll
nella directoryobjs\win32\vc2010
.
Io vado a scommettere che il problema è che il progetto DLL non esporta alcun simbolo, così mentre tutto il codice è in là gli indirizzi dei simboli non sono nella tabella delle esportazioni in modo che nessuno può ottenere a loro dall'esterno.
This question ha una buona soluzione per esportare tutti i simboli in una .dll senza doverli elencare manualmente.
- 1. Collega una libreria statica a una condivisa durante la compilazione?
- 2. Aggiungi libreria statica a podspec
- 3. compilazione libreria statica C++ per piattaforma Windows a 64 bit utilizzando VS2008
- 4. caricamento dinamico della libreria statica?
- 5. cross-compilazione Freetype 2.5.3 per Android
- 6. compilazione a runtime (generazione dll) all'interno di un'applicazione MVC 3
- 7. Un collegamento a una libreria statica C++ alla libreria condivisa?
- 8. Dalla libreria statica MinGW (.a) alla libreria statica di Visual Studio (.lib)
- 9. Compilazione di un codice di IronPython a EXE o DLL
- 10. Libreria statica di compilazione incrociata da Linux per Windows
- 11. Compilazione della DLL con informazioni sulla versione
- 12. Libreria statica Swift
- 13. collegamento con libreria statica rispetto a singoli file oggetto
- 14. Come faccio a dire a CMake di collegarsi in una libreria statica nella directory dei sorgenti?
- 15. Problemi con ld e libreria statica "riferimento non definito a"
- 16. libreria statica v.s. libreria di importazione su piattaforma Windows
- 17. FreeType - aiutami a comprendere la proprietà advance.y di glifo
- 18. Come sono i file di intestazione (.h), file di libreria (.lib) e DLL (.dll) relativi a
- 19. Riferimento a una DLL instabile
- 20. Come si determina l'architettura di destinazione della libreria statica (.a) su Mac OS X?
- 21. Collegamento di una libreria condivisa a una libreria statica: la libreria statica deve essere compilata in modo diverso rispetto a quando un'applicazione lo stava collegando?
- 22. Pod privato con libreria statica insieme a swift pod
- 23. collegamento a una libreria 0MQ statica in VS
- 24. Come collegare a una libreria statica in C?
- 25. È possibile collegare una libreria statica a Java tramite JNI?
- 26. Best practice per le dipendenze della libreria statica
- 27. Overhead della chiamata di funzione DLL
- 28. constexpr statica puntatore a funzione, differenza tra i compilatori
- 29. inizializzazione statica in un'unità di compilazione
- 30. Debug di una dll collegata a runtime
questi file binari sono a partire dal 9 marzo 2008 (versione 2.3.5 ...) La versione corrente è 2.4.6 ... – Titusz
@Titusz - Buon punto. Ho aggiornato la mia risposta. Tuttavia, se sei il downvoter, sarebbe bello assicurarti che la domanda sia completa, quindi conosciamo tutta la storia prima di rispondere. –
questo ha funzionato perfettamente ... grazie mille ... tanta ben meritata;) – Titusz