Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

1

21.11.2009, 15:22

Problem, Direct2D zu kompilieren

Hallo,
da ich mal anfangen wollte mit Direct2D ein bisschen rumzuspielen, habe ich mir erstmal die neuste DirectX SDK (August 2009) runtergeladen und mir ein Beispiel in der MSDN durchgelesen. Dieses wollte ich dann gleich mal selber schreiben und: ich scheitere schon beim Includieren der Headerdatei d2d1.h .

Folgende Fehler:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10_1.h|17|warning: ignoring #pragma warning |
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|22|warning: ignoring #pragma warning |
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\dxgi.h|17|warning: ignoring #pragma warning |
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|839|error: `__out' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|839|error: expected `,' or `...' before '*' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|839|error: ISO C++ forbids declaration of `ID3D10Device' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|843|error: `__in' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|843|error: expected `,' or `...' before '&' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|847|error: ISO C++ forbids declaration of `GUID' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|851|error: `__in' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|851|error: expected `,' or `...' before '&' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|855|error: ISO C++ forbids declaration of `GUID' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|859|error: `__in' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|859|error: expected `,' or `...' before '&' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|861|error: ISO C++ forbids declaration of `GUID' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1006|error: `UINT8' does not name a type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1007|error: `UINT8' does not name a type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1034|error: `__out' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1034|error: expected `,' or `...' before '*' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1034|error: ISO C++ forbids declaration of `D3D10_DEPTH_STENCIL_DESC' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1193|error: `UINT8' does not name a type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1218|error: `__out' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1218|error: expected `,' or `...' before '*' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1218|error: ISO C++ forbids declaration of `D3D10_BLEND_DESC' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1364|error: `__out' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1364|error: expected `,' or `...' before '*' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1364|error: ISO C++ forbids declaration of `D3D10_RASTERIZER_DESC' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1507|error: `__out' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1507|error: expected `,' or `...' before '*' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1507|error: ISO C++ forbids declaration of `D3D10_RESOURCE_DIMENSION' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1511|error: `__in' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1511|error: expected `,' or `...' before "EvictionPriority"|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1511|error: ISO C++ forbids declaration of `UINT' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1693|error: `__in' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1693|error: expected `,' or `...' before "MapType"|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1697|error: ISO C++ forbids declaration of `D3D10_MAP' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1703|error: `__out' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1703|error: expected `,' or `...' before '*' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1703|error: ISO C++ forbids declaration of `D3D10_BUFFER_DESC' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1919|error: `__in' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1919|error: expected `,' or `...' before "Subresource"|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1925|error: ISO C++ forbids declaration of `UINT' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1929|error: `__in' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1929|error: expected `,' or `...' before "Subresource"|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1929|error: ISO C++ forbids declaration of `UINT' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1933|error: `__out' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1933|error: expected `,' or `...' before '*' token|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|1933|error: ISO C++ forbids declaration of `D3D10_TEXTURE1D_DESC' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|2167|error: `__in' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|2167|error: expected `,' or `...' before "Subresource"|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|2173|error: ISO C++ forbids declaration of `UINT' with no type|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|2177|error: `__in' has not been declared|
C:\Program Files\Microsoft DirectX SDK (August 2009)\Include\d3d10.h|2177|error: expected `,' or `...' before "Subresource"|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 3 warnings ===|


Ich benutze Code::Blocks. Vielleicht könnt ihr mir helfen. Schonmal "Danke" im Voraus.

MfG Phil239
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

2

21.11.2009, 15:29

Also, ich hab mal gehört, das es mit anderen Compilern als mit dem MS-Compiler Probleme gibt, welchen Compiler verwendest du unter Code::Blocks?

Falls ich Blödsinn erzähle, bitte berichtigen ;)
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

3

21.11.2009, 15:42

gnu gcc
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

4

21.11.2009, 15:59

hast das ganze mal mit msvc oder unter code::blocks mit nem ms-compiler probiert?
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

5

21.11.2009, 16:02

Noch nicht.
Ich probier mal.
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

6

21.11.2009, 16:05

Weißt du vielleicht, ob und wo ich das Visual C++ Toolkit 2003 runterladen kann?
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

7

21.11.2009, 16:11

Ich versuchs jetzt mal mit Visual C++ 2008 bzw. mit seinem Compiler.
Muss ich aber erstmal installieren.
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

8

21.11.2009, 16:39

Bei VC++ 2008 gehts ohne Probleme.
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

9

21.11.2009, 18:47

Jo, dann wirste wohla uf vc08 umsteigen müssen, oder ich glaub unter code::blocks kann man auch den vc08-compiler nutzen, oder?
musst halt mal ausprbieren.
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

Phil239

Frischling

  • »Phil239« ist der Autor dieses Themas

Beiträge: 79

Beruf: Student

  • Private Nachricht senden

10

22.11.2009, 19:21

Also mit CodeBlocks gehts jetzt auch.
Jetzt hab ich mein nächstes Problem. Und zwar beim "Erschaffen" des Rendertargets.
Hier der Code in meinem Programm:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Initialize Direct2D

HRESULT Initialize(HWND hwnd)
{
    // Variables

    ID2D1Factory*       pFactory = NULL;
    HRESULT             hr;
    RECT                rc;
    ID2D1RenderTarget*  pRT = NULL;

    // Create The single-threaded Factory

    if(!SUCCEEDED(hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &pFactory))) return -1;

    // Size of the Window

    GetClientRect(hwnd, &rc);

    // Create the render target

    hr = pFactory->CreateHwndRenderTarget(D2D1::RenderTargetProperties(),
                                          D2D1::HwndRenderTargetProperties(hwnd,
                                                                           D2D1::SizeU(rc.right-rc.left, rc.bottom-rc.top)),
                                          &pRT);
    return 0;
}

Der Fehler:

Quellcode

1
main.cpp|116|error C2664: 'HRESULT ID2D1Factory::CreateHwndRenderTarget(const D2D1_RENDER_TARGET_PROPERTIES *,const D2D1_HWND_RENDER_TARGET_PROPERTIES *,ID2D1HwndRenderTarget **)': Konvertierung des Parameters 1 von 'D2D1_RENDER_TARGET_PROPERTIES' in 'const D2D1_RENDER_TARGET_PROPERTIES *' nicht m”glich|


Jetzt dieselbe Stelle im Beispielprogramm der MSDN:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
HRESULT DemoApp::CreateDeviceResources()
{
    HRESULT hr = S_OK;

    if (!m_pRenderTarget)
    {

        RECT rc;
        GetClientRect(m_hwnd, &rc);

        D2D1_SIZE_U size = D2D1::SizeU(
            rc.right - rc.left,
            rc.bottom - rc.top
            );

        // Create a Direct2D render target.

        hr = m_pD2DFactory->CreateHwndRenderTarget(
            D2D1::RenderTargetProperties(),
            D2D1::HwndRenderTargetProperties(m_hwnd, size),
            &m_pRenderTarget
            );
        if (SUCCEEDED(hr))
        {
            // Create a black brush.

            hr = m_pRenderTarget->CreateSolidColorBrush(
                D2D1::ColorF(D2D1::ColorF::Black),
                &m_pBlackBrush
                );
        }

    }

    return hr;
}

Beim Compilen keine Fehler.
Meine Frage: Wo liegt da der Unterschied???
Schonmal danke im Voraus.
MfG Phil239
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.

Werbeanzeige