Spiel von DX8 zu DX9 - IID_IDirectInput8 ist nicht aufgelöst



  • Hallo!
    Ich habe mein Spiel von DX8 auf DX9 geupdatet. Leider wird IID_IDirectInput8 als nicht aufgelöstes Symbol identifiziert. Der Aufruf lautet wie folgt:

    DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&DI_Object, NULL);
    

    Ich habe <dinput.h> inkludiert und die libs dinput8.lib dxguid.lib d3d9.lib d3dx9.lib werden mitgelinkt....
    Was könnte noch der Fehler sein?
    Gruß,
    Compiler



  • In der Reihenfolge der Include-verzeichnisse muss das Include-Verzeichnis des DX9SDK vor allen anderen stehen, da sonst eine alte Version der "dinput.h" benutzt wird.

    Das hat mich auch schonmal nerven gekostet.



  • Nein, daran liegt es nicht...den Fehler hab ich schon nach 2 Minuten identifiziert 🙂

    Woran kann es denn jetzt noch liegen? 😞 Gibts vielleicht einen DX9 SDK Patch oder so, der den Bug behebt! Weil ich compile die DirectInput Samples von DX9 SDK und der selbe Fehler tritt auf! :((((((((((((((((



  • Ich hatte mal einen allgemeine Lösung für Linkerprobleme gepostet. Probier die.#

    Bye, TGGC \-/



  • Compiler schrieb:

    Nein, daran liegt es nicht...den Fehler hab ich schon nach 2 Minuten identifiziert 🙂

    Woran kann es denn jetzt noch liegen? 😞 Gibts vielleicht einen DX9 SDK Patch oder so, der den Bug behebt! Weil ich compile die DirectInput Samples von DX9 SDK und der selbe Fehler tritt auf! :((((((((((((((((

    Was für das Include-Verzeichniss gilt, gilt auch für das Lib-Verzeichnis, hätte ich vieleicht sagen sollen...

    Nichtaufgeloestes externes Symbol _IID_IDirectInput8A

    bekomme ich wenn das Lib-Verzeichnis des DX9SDKs nicht ganz vorne steht. 😉

    Edit: die "dxguid.lib" hast du aber gelinkt, oder?



  • illuminator schrieb:

    Edit: die "dxguid.lib" hast du aber gelinkt, oder?

    Compiler schrieb:

    Ich habe <dinput.h> inkludiert und die libs dinput8.lib dxguid.lib d3d9.lib d3dx9.lib werden mitgelinkt....



  • mit #define INITGUID gehts...



  • Compiler schrieb:

    mit #define INITGUID gehts...

    Komisch...

    MSDN schrieb:

    I get linker errors about multiple or missing symbols for globally unique identifiers (GUIDs), what do I do?

    The various GUIDs you use should be defined once and only once. The definition for the GUID will be inserted if you #define the INITGUID symbol before including the DirectX header files. Therefore, you should make sure that this only occurs for one compilation unit. An alternative to this method is to link with the dxguid.lib library, which contains definitions for all of the DirectX GUIDs. If you use this method (which is recommended), then you should never #define the INITGUID symbol.



  • Mir kommt das mit dem #define INITGUID auch ziemlich komisch vor. Ich hatte vor einiger Zeit genau das gleiche Problem, als ich meine Input Klasse programmiert hab. Lag aber letztendlich daran, dass ich einfach vergessen hatte, einige Libs mit einzubinden. Danach hat's dann problemlos funktioniert, auch ohne irgendwelche #defines oder ähnlichen Schnickschnack. Kann es sein, dass du eventuell ein veraltetes PlatformSDK benutzt?


Anmelden zum Antworten