0

私の名前はミゲルです。1 つの .bmp で各ピクセルを取得しようとしていますが、これまでのところ、ビットマップを初期化すると値が取得されないため、初期化が間違っていると思います。これは私の現在のコードです:(スニペット)

Bitmap *PerlinImage;

void OpenPerlinFile()
{
    PerlinImage = new Bitmap((WCHAR*)"C:\\Users\\Utilizador\\Documents\\Visual Studio 2012\\Projects\\Cube3D\\IDTech_JavaOpenGL_Port\\perlinNoise.bmp");
}

// END

void Initialize(void)
{
    OpenPerlinFile();

    Unit tempunit;
    Color color; 

    int ccount = 0;
    for (int h = 0; h != PerlinImage->GetHeight(); h++)
......

さて、私のコードを見て、私が間違っていることを予測してもらえますか?

ありがとうございました

ミゲル・ピーターセン

4

2 に答える 2

1

パスが正しいと仮定すると、次のようになります。

PerlinImage = new Bitmap((WCHAR*)"C:\\Users\\Utilizador\\Documents\\Visual Studio 2012\\Projects\\Cube3D\\IDTech_JavaOpenGL_Port\\perlinNoise.bmp");

次のようにする必要があります。

PerlinImage = new Bitmap(_T("C:\\Users\\Utilizador\\Documents\\Visual Studio 2012\\Projects\\Cube3D\\IDTech_JavaOpenGL_Port\\perlinNoise.bmp"));

または、ヘルパー マクロを使用しない場合:

PerlinImage = new Bitmap(L"C:\\Users\\Utilizador\\Documents\\Visual Studio 2012\\Projects\\Cube3D\\IDTech_JavaOpenGL_Port\\perlinNoise.bmp");
于 2012-08-25T23:53:31.823 に答える
0

GdiplusStartup の呼び出しが必要です。PerlinImage の値も確認してください。NULL でない場合は、PerlinImage->GetLastStatus() でエラーを確認できます。PerlinImage が NULL の場合、GdiplusStartup を呼び出すのを忘れる可能性があります。

于 2012-09-05T01:47:58.517 に答える