我想在C#项目中使用FreeType。我发现这个binding,但我仍然需要一个freetype.dll。我通常在我的C++项目中使用静态库,所以我从来没有编译过一个。打开freetype解决方案(VS2010)我注意到,没有配置动态库 - 只是静态的。我试图做我自己的配置,并得到它来生成一个freetype.dll。如果我使用它与c#绑定我得到一个异常,找不到FT_Init_FreeType入口点。任何想法如何我必须调整freetype-project来导出这些函数?将FreeType编译为DLL(与静态库相反)
14
A
回答
35
如果您确定旧版本(2008年3月),您可以访问FreeType for Windows页面,下载最新的Binaries软件包,打开.ZIP并从bin目录中提取FreeType6.dll。只需适当地重命名它。
如果你需要一个较新的版本,这里是你如何编译最新:从http://sourceforge.net/projects/freetype/files/freetype2/
打开Visual Studio,
下载最新的源代码(2.4.6截至今日)并从
builds\win32\vc2010
目录加载freetype.sln
。打开项目的配置,并在
General
选项卡,更改Configuration Type
到Dynamic Library (.dll)
打开
ftoption.h
文件,并添加这些行(附近的“DLL导出汇编”为例说明部分):#define FT_EXPORT(x) __declspec(dllexport) x #define FT_BASE(x) __declspec(dllexport) x
将项目编译配置更改为“发布”。
编译该项目。您现在应该在
objs\win32\vc2010
目录中有一个freetype246.dll
。
1
我会打赌,问题是,你的DLL项目不导出任何符号,所以当所有的代码是有符号的地址不在出口表,所以没有人可以得到从外面给他们。
This question有一个不错的解决方案,导出.dll中的所有符号,而无需手动列出它们。
相关问题
- 1. 在Windows上将FreeType 2.6.3编译为.dll
- 2. 编译一个C++库作为一个静态库和动态DLL与VS
- 3. 如何将Haskell编译为静态库?
- 4. 将mono编译为静态库
- 5. 编译PHP错误与freetype
- 6. QT静态库静态编译
- 7. 交叉编译freetype为Android
- 8. 为iPhone SDK(XCode)编译Freetype
- 9. 用预编译的静态库编译
- 10. 如何将nana编译成静态库
- 11. dotPeek反编译DLL
- 12. .dll反编译器
- 13. iOS:编译静态库
- 14. 静态库中断编译
- 15. 无法为archvv7编译静态库
- 16. Makefile C++ 11 - 编译为静态库
- 17. 如何将Qt编译为静态
- 18. 如何在编译DLL到静态库时处理DLL_EXPORT?
- 19. 编译和反编译dll文件
- 20. 使用Visual C++ 6编译器而不是动态库(DLL)创建静态库
- 21. Visual Studio静态库编译器硬编码相对路径
- 22. 为ASP反编译DLL文件
- 23. 将C++代码编译为静态库(.a)
- 24. 将Boost编译为静态通用二进制库
- 25. 任何方式将firebreath编译为静态库?
- 26. 反编译文件.dll
- 27. 如何反编译C++ dll?
- 28. 编译静态库内的静态库 - 问题
- 29. 将静态库链接到一个DLL
- 30. CMake项目编译罚款SHARED库,但不与静态库
这些二进制文件是从2008年3月9日(版本2.3.5 ...)当前版本是2.4.6 ... – Titusz 2011-09-13 12:29:23
@Titusz - 好点。我已经更新了我的答案。然而,如果你是一个downvoter,那么确保这个问题是完整的就好了,所以我们在回答之前知道整个故事。 – 2011-09-13 13:33:44
这工作完美...非常感谢你...赏金很好赚;) – Titusz 2011-09-15 09:40:42