3

ゲームを書くときは、常にいくつかのデータ(画像、音など)を追加します。Unixライクなシステムでは、通常、それらを$ {PREFIX} / share / project / dataにインストールします。ここで、${PREFIX}はCMakeやautotoolsなどのビルドシステムによって制御されます。

この場合、ビルドシステムによって自動的に生成される#defineを使用して、データディレクトリを直接設定するのは簡単です。

Windowsでは、アプリケーションインストーラーが常にプロジェクトのインストール場所を尋ね、コードが既にコンパイルされているため、データディレクトリを見つける方法がまったくわかりません。これを#defineで制御することはできません。

この問題について2つのアイデアがあります。

  1. バイナリを開始し、データディレクトリにスイッチを追加する.batスクリプトを使用します。その後、ユーザーはこの.batファイルのみを開始します。

  2. データディレクトリへのパスを含む新しいファイルをアプリケーションインストーラーで生成し、CommonAppDataフォルダーのどこかにインストールします。

あなたは私に何をするようにアドバイスしますか?

4

1 に答える 1

2

win32のみを対象としている場合は、リソースコンパイラを使用する必要があります。これにより、実行可能ファイル自体に任意のファイルを含めることができ、それらを参照するためのマクロが自動的に生成され、win32APIを使用してそれらをロードできます。User-Defined Resourceを使用すると、ビルドに任意のBLOBを格納できます。

欠点は、移植性がまったくないことと、動作させるために適度なMicrosoftfuが必要なことです。

于 2012-08-01T06:44:37.583 に答える