因此。我找到了很好的开源项目here来挂钩名为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':无法实例化抽象类
然后,如果我替换
标题
中的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的一些错误配置?
答案 0 :(得分:0)
我修好了。 Speedo.cpp中存在一个错误,它试图加载错误的文件,导致符号文件出现问题。