2011-06-01 5 views
14

私はC#プロジェクトでFreeTypeを使いたいです。私はこのbindingを見つけましたが、私はまだfreetype.dllが必要です。私は通常、私のC++プロジェクトで静的ライブラリを使用するので、私は決してコンパイルしません。 freetype-solution(VS2010)を開く私は動的ライブラリの設定がないことに気付きました。静的なものだけです。私は自分の設定をしようとし、freetype.dllを生成するようにしました。私がc#-bindingでそれを使用すると、FT_Init_FreeTypeエントリポイントが見つからないという例外が発生します。これらの関数をエクスポートするためにfreetype-projectをどのように調整しなければならないのでしょうか?FreeTypeをDLLにコンパイルする(スタティックライブラリではなく)

答えて

35

古いバージョン(2008年3月)で問題が解決しない場合は、FreeType for Windowsページにアクセスし、最新のバイナリパッケージをダウンロードして.ZIPを開き、binディレクトリからFreeType6.dllを抽出します。適切に名前を変更するだけです。

あなたは、より新しいバージョンが必要な場合は、ここであなたは、最新のをコンパイルする方法です。

  • http://sourceforge.net/projects/freetype/files/freetype2/

  • オープンのVisual Studioから最新のソース(今日のよう2.4.6)をダウンロード2010、負荷freetype.slnbuilds\win32\vc2010ディレクトリからロードします。

  • は、プロジェクトの設定を開き、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があるはずです。私はこの問題は、すべてのコードがそこにいる間、誰もが得ることができないので、シンボルのアドレスは、輸出のテーブルに含まれていないので、あなたのDLLプロジェクトは、任意のシンボルをエクスポートしないことであることを賭けるつもりです

+0

これらのバイナリは2008年3月9日(バージョン2.3.5 ...)です。現在のバージョンは2.4.6 ... – Titusz

+0

です@ティトゥス - 良い点。私は私の答えを更新しました。しかし、あなたがdownvoterなら、質問が完全であることを確認して、答える前にすべての話を知っておくといいでしょう。 –

+0

これは完璧に機能しました...非常に多くの...恩恵を受けてくれてありがとうございます;) – Titusz

1

彼らには外部から。

This questionには、手動でリストすることなく、.dll内のすべてのシンボルをエクスポートすることができます。