c++ - 在同一个函数中,"this declaration ahs no type specifier" 和"expected a declaration" 错误

  显示原文与译文双语对照的内容
0 0

我有以下代码:


HRESULT __stdcall IDirect3DDevice9Hook::BeginScene()
{
 if(dwD3D9DllBaseAddr && dwD3D9DllSize) 
 {
 dwD3DDev = (DWORD)pD3DDevice;

 _asm mov eax, dwD3DDev
 _asm mov ebx, [eax]
 _asm mov eax, [ebx+164]
 _asm mov dwTestPtr, eax 

 if(dwTestPtr <dwD3D9DllBaseAddr || dwTestPtr> (dwD3D9DllBaseAddr + dwD3D9DllSize)) {
 FORCE_EXIT( 10 );
 } 
 }

 return pD3DDevice->BeginScene();
}

在 5th 行上面写着"这里声明没有存储类或者类型说明符"在 FORCE_EXIT(10); 上也这么说。 在第二个if语句( 如果( dwtestptr 。) 上,它表示"需要声明"。 他们怎么了?

时间: 原作者:

0 0

具有类似C 或者 C++ 语言的"问题"是语法并非总是唯一的。 如果你看第五行你可能看到了。 但是,如果变量dwD3DDev不存在,编译器可能实际上会看到带有初始值设定项的声明,除了这里声明没有指定类型。

因此,错误消息并不总是"正确"因为他们不是基于你目的;相反,它们是基于一些通知"嘿这里有些不合适"时编译器的内部状态。 这两者可能并不总是一致的。

因此,你必须在代码( 如果它们是全局变量或者实例变量)的其他地方声明变量 ---,或者像编译器那样做,并添加类型。

...