簡體   English   中英

掛鈎DirectX游戲

[英]Hook for DirectX game

所以。 我在這里找到了一個不錯的開源項目來掛接名為GTA Vice City的舊游戲(我想在游戲屏幕上繪制一些圖像,例如HUD)我剛剛安裝了DOT NET 2002並嘗試編譯d3d8庫項目(Visual Studio已經擁有DirectX) 8.1庫和標頭),但我得到的錯誤很少。 有些人對它進行了很好的編譯,而有些人由於這些錯誤而無法編譯:

c:\Documents and Settings\Administrator\Moje dokumenty\Downloads\sahud_src\IDirect3D8Hook.h(18) : error C2259: 'IDirect3DDevice8Hook' : cannot instantiate abstract class
        due to following members:
        'void IDirect3DDevice8::SetCursorPosition(UINT,UINT,DWORD)' : pure virtual function was not defined
        c:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\prerelease\d3d8.h(263) : see declaration of 'IDirect3DDevice8::SetCursorPosition'
IDirect3DDevice8Hook.cpp
c:\Documents and Settings\Administrator\Moje dokumenty\Downloads\sahud_src\IDirect3D8Hook.h(18) : error C2259: 'IDirect3DDevice8Hook' : cannot instantiate abstract class
        due to following members:
        'void IDirect3DDevice8::SetCursorPosition(UINT,UINT,DWORD)' : pure virtual function was not defined
        c:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\prerelease\d3d8.h(263) : see declaration of 'IDirect3DDevice8::SetCursorPosition'
IDirect3D8Hook.cpp
c:\Documents and Settings\Administrator\Moje dokumenty\Downloads\sahud_src\IDirect3D8Hook.h(18) : error C2259: 'IDirect3DDevice8Hook' : cannot instantiate abstract class
        due to following members:
        'void IDirect3DDevice8::SetCursorPosition(UINT,UINT,DWORD)' : pure virtual function was not defined
        c:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include\prerelease\d3d8.h(263) : see declaration of 'IDirect3DDevice8::SetCursorPosition'

更清楚地說:c:... \\ IDirect3D8Hook.h(18):錯誤C2259:“ IDirect3DDevice8Hook”:無法實例化抽象類

然后,如果我更換

int轉換為標頭中的UINT

 STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y,DWORD Flags);

和這里

void __stdcall IDirect3DDevice8Hook::SetCursorPosition(int X, int Y, DWORD Flags)
{
    pD3DDevice->SetCursorPosition(X, Y, Flags);
}

它可以編譯,但是在將輸出DLL作為d3d8.dll保存到游戲文件夾中並運行后,出現錯誤,例如應用程序未正確運行 0xC0000005

怎么了? Visual Studio的某些配置錯誤?

  • 某位好友說,0xC0000005是因為某條ASM指令加載/存儲到錯誤的內存地址。 但是,如果該項目完成並准備好進行編譯,該怎么辦?

我已經解決了。 Speedo.cpp中存在一個錯誤,該錯誤試圖加載錯誤的文件,從而導致符號文件出現問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM