0

MinGW と SDL を使用して Eclipse CDT 64 ビットを実行しています。SDL が main メソッドを「巧妙に」再定義すること、および独自のメイン cpp を使用するために #undef main を追加することが正確な場合があることを既に読みました。私はすでにそれを行っていますが、アプリを実行しようとすると、メインが完全に無視されます (そうするためにいくつかのブレークポイントを設定しました)。

私の主な方法は次のようになります。

#include "SDL/SDL.h"
#include "SDL/SDL_image.h"

#undef main

using namespace std;

int main(int argc, char* argv[])
{

    if (SDL_Init(SDL_INIT_EVERYTHING) == -1) {
        printf("Error: %s\n", SDL_GetError());
        return 1;
    }

        SDL_WM_SetCaption( "MarioKong", NULL );

プロジェクト プロパティで MinGW C++ リンカー ライブラリを次のように定義しました: mingw32、SDLMain、SDL、SDL_image。( lazyfoo)に記載されているSDLインストールノートに従いました

MY メインファイルを実行するにはどうすればよいですか?

4

1 に答える 1

1

main を再定義する賢い方法は、すべてのプラットフォームで同じ main 関数を持ち、どこでも同じように使用できることです。したがって、#ifdef win32 WinMain else main などはありません。また、すべてのプラットフォームでコマンド ライン引数を等しく使用できます。したがって、私のアドバイスは、「int main(int argc, char* argv[])」に固執し、#undef メイン コマンドを使用しないことです。

于 2014-07-14T11:36:09.467 に答える