shlobj.h macht Probleme
-
Ich hab überlegt, ob ich dazu schreiben soll, dass ich noch nich der Pro bin, weil ich wusste dass als Antwort kommen wird: lern erst mal C++ gescheit. 1. Hab ich eigentlich nicht die Zeit mich erst mal an 1200 Seiten zu setzten und 2. auch nicht die Lust dazu und 3. komme ich eigentlich schon gut klar, nur bei Header-Datei-Fehlern bin ich eben ein wenig Machtlos
-
Nachtrag:
Wenn ich raten soll, hat irgend etwas mit dem Linken bei dir nicht funktioniert.
-
f.-th. schrieb:
Nachtrag:
Wenn ich raten soll, hat irgend etwas mit dem Linken bei dir nicht funktioniert.Das würde ich nicht sagen. Das sind Compilerfehler. Allerdings sehr merkwürdige, wenn dies die ersten Fehlermeldungen sein sollten, da shlobj.h, wenn ich das richtig sehe, ein Systemheader ist. Ich hätte da einen fehlenden Includepfad vermutet, aber dann wären zuvor schon Fehler a la "include <xyz.h>: Datei nicht gefunden" gekommen.
-
hm... mich hats auch sehr gewundert
-
Mit so kleinen Fehlern hab ich ja eig auch keine Probleme ^^
Aber hier sind das so komische Sachen. Dieses "Default-int" hab ich eig auch schon ausgebessert etc. Aber die anderen Fehler ... überfordern mich dann doch.Ich möchte aber auch nicht ausschließen, dass die Header-Datei einfach nicht richtig geschrieben wurde... Soll ich den Code ma posten ?
-
Linken steht ja am Ende der Kette.
Headernamen falsch geschrieben oder am der falschen Stelle gesucht kann ja auch dazu führen das eine Bibliothek nicht richtig angesprochen wird.
Es sind bei deiner Fehlermeldung Andeutungen das der Quelltext, den du compilieren willst, eventuell für eine andere VS-Version geschrieben ist als die 2008?
MfG f.-th.
-
ich hab es erst mit ner anderen Version probiert. Visual C++ 2010. Damit gabs dann Konvertireungsfehler und es geht nix. Aber ich versuchs nochmal...
Gibt nur Fehler

-
Nein, ich dachte da eher an etwas älteres.
Der 2010 brauch wahrscheinlich noch mehr Einsatz um dem Quelltext zum Laufen zu bekommen.MfG f.-th.
-
Is mir danach auch eingefallen

Bin grad am Installieren von 2005
-
Zeig doch mal deinen Bsp Code!
-
vom Projekt oder von der Header-Datei ?
-
Subtrix schrieb:
Ich hab überlegt, ob ich dazu schreiben soll, dass ich noch nich der Pro bin, weil ich wusste dass als Antwort kommen wird: lern erst mal C++ gescheit. 1. Hab ich eigentlich nicht die Zeit mich erst mal an 1200 Seiten zu setzten und 2. auch nicht die Lust dazu und 3. komme ich eigentlich schon gut klar, nur bei Header-Datei-Fehlern bin ich eben ein wenig Machtlos
Das bißchen Zeit, dass dich das Lesen einiger Bücher kostet, ist ein Tropfen auf dem heißen Stein gegen die hunderte bis tausende Stunden Zeit, die du andernfalls in den nächsten Jahren verschleudern würdest, weil du Sprachmittel und Techniken nicht richtig beherrschst oder erst gar nicht kennst.
Du wirst alles dreimal so umständlich wie nötig machen und den Großteil deiner Zeit mit dem Aufspüren leicht vermeidbarer Fehler verbringen.Wenn du schon ein wenig C++ kannst, solltest du dir zumindest "Effective C++" ansehen, das ist auch nicht besonders lang.
Subtrix schrieb:
vom Projekt oder von der Header-Datei ?
Vom Projekt natürlich.
-
Hmm... Ja, sollte ich vielleicht machen. Ich hab ja ein gutes Buch, aber das is so lang und trocken ^^
Als Tipp: Das Project is aus dem DirectX Sample Browser. Ich hab noch nichts daran geändert, weil das erst laufen muss, und dann das Buch erst ansetzt.
-
//-------------------------------------------------------------------------------------- // File: EmptyProject.cpp // // Empty starting point for new Direct3D 9 applications // // Copyright (c) Microsoft Corporation. All rights reserved. //-----------------1--------------------------------------------------------------------- #include "DXUT.h" #include "resource.h" //-------------------------------------------------------------------------------------- // Rejects any D3D9 devices that aren't acceptable to the app by returning false //-------------------------------------------------------------------------------------- bool CALLBACK IsD3D9DeviceAcceptable( D3DCAPS9* pCaps, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat, bool bWindowed, void* pUserContext ) { // Typically want to skip back buffer formats that don't support alpha blending IDirect3D9* pD3D = DXUTGetD3D9Object(); if( FAILED( pD3D->CheckDeviceFormat( pCaps->AdapterOrdinal, pCaps->DeviceType, AdapterFormat, D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING, D3DRTYPE_TEXTURE, BackBufferFormat ) ) ) return false; return true; } //-------------------------------------------------------------------------------------- // Before a device is created, modify the device settings as needed //-------------------------------------------------------------------------------------- bool CALLBACK ModifyDeviceSettings( DXUTDeviceSettings* pDeviceSettings, void* pUserContext ) { return true; } //-------------------------------------------------------------------------------------- // Create any D3D9 resources that will live through a device reset (D3DPOOL_MANAGED) // and aren't tied to the back buffer size //-------------------------------------------------------------------------------------- HRESULT CALLBACK OnD3D9CreateDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext ) { return S_OK; } //-------------------------------------------------------------------------------------- // Create any D3D9 resources that won't live through a device reset (D3DPOOL_DEFAULT) // or that are tied to the back buffer size //-------------------------------------------------------------------------------------- HRESULT CALLBACK OnD3D9ResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext ) { return S_OK; } //-------------------------------------------------------------------------------------- // Handle updates to the scene. This is called regardless of which D3D API is used //-------------------------------------------------------------------------------------- void CALLBACK OnFrameMove( double fTime, float fElapsedTime, void* pUserContext ) { } //-------------------------------------------------------------------------------------- // Render the scene using the D3D9 device //-------------------------------------------------------------------------------------- void CALLBACK OnD3D9FrameRender( IDirect3DDevice9* pd3dDevice, double fTime, float fElapsedTime, void* pUserContext ) { HRESULT hr; // Clear the render target and the zbuffer V( pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_ARGB(0, 45, 50, 170), 1.0f, 0) ); // Render the scene if( SUCCEEDED( pd3dDevice->BeginScene() ) ) { V( pd3dDevice->EndScene() ); } } //-------------------------------------------------------------------------------------- // Handle messages to the application //-------------------------------------------------------------------------------------- LRESULT CALLBACK MsgProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, bool* pbNoFurtherProcessing, void* pUserContext ) { return 0; } //-------------------------------------------------------------------------------------- // Release D3D9 resources created in the OnD3D9ResetDevice callback //-------------------------------------------------------------------------------------- void CALLBACK OnD3D9LostDevice( void* pUserContext ) { } //-------------------------------------------------------------------------------------- // Release D3D9 resources created in the OnD3D9CreateDevice callback //-------------------------------------------------------------------------------------- void CALLBACK OnD3D9DestroyDevice( void* pUserContext ) { } //-------------------------------------------------------------------------------------- // Initialize everything and go into a render loop //-------------------------------------------------------------------------------------- INT WINAPI wWinMain( HINSTANCE, HINSTANCE, LPWSTR, int ) { // Enable run-time memory check for debug builds. #if defined(DEBUG) | defined(_DEBUG) _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); #endif // Set the callback functions DXUTSetCallbackD3D9DeviceAcceptable( IsD3D9DeviceAcceptable ); DXUTSetCallbackD3D9DeviceCreated( OnD3D9CreateDevice ); DXUTSetCallbackD3D9DeviceReset( OnD3D9ResetDevice ); DXUTSetCallbackD3D9FrameRender( OnD3D9FrameRender ); DXUTSetCallbackD3D9DeviceLost( OnD3D9LostDevice ); DXUTSetCallbackD3D9DeviceDestroyed( OnD3D9DestroyDevice ); DXUTSetCallbackDeviceChanging( ModifyDeviceSettings ); DXUTSetCallbackMsgProc( MsgProc ); DXUTSetCallbackFrameMove( OnFrameMove ); // TODO: Perform any application-level initialization here // Initialize DXUT and create the desired Win32 window and Direct3D device for the application DXUTInit( true, true ); // Parse the command line and show msgboxes DXUTSetHotkeyHandling( true, true, true ); // handle the default hotkeys DXUTSetCursorSettings( true, true ); // Show the cursor and clip it when in full screen DXUTCreateWindow( L"EmptyProject" ); DXUTCreateDevice( true, 640, 480 ); // Start the render loop DXUTMainLoop(); // TODO: Perform any application-level cleanup here return DXUTGetExitCode(); }
-
VC++ 2005 schmiert ab, wenn ich das Projekt öffne

-
Subtrix schrieb:
VC++ 2005 schmiert ab, wenn ich das Projekt öffne

Das wird vermutlich nicht mit irgendwelchen Formatänderungen in den späteren Versionen klarkommen. Mach ein neues Projekt und kopier deinen Quelltext.
edit: Das wirft dann aber kein gutes Licht auf den Importfilter, wenn der in diesem Fall ohne Meldung abschmiert.
-
hmm.... dann müsste ich aber die gesamte Projektmappe übertragen etc.
zum edit: also, importiert is das alles. Und es zeigt es auch an, aber ich hab ja Win 7 und ich glaub dass das programm damit eher Probleme hat..

-
Das kompiliert sogar unter Linux mit MinGW, wenn man folgende Zeilen voranstellt:
#include <specstrings.h> #define UINT8 uint8_t #define WINAPI_INLINE inline #define __reserved #define __in_z #define __in_z_opt #define __noop 0 #include <algorithm> #define __max std::maxBeim MSVC sollten diese Makros eigentlich schon standardmäßig definiert sein.
Bist du sicher, dass du das DirectX SDK korrekt installiert hast und die Suchpfade richtig eingestellt sind?